このコードを使用して、配列内の人々を表示および追加します。コントローラ内で角型js入力モデルにアクセスできない
index.htmlを
<!DOCTYPE html>
<html ng-app="myApp">
<body>
<h1>People</h1>
<div ng-controller="Ctrl">
<div ng-view></div>
</div>
<script src="angular.min.js"></script>
<script src="angular-route.min.js"></script>
<script src="controller.js"></script>
</body>
</html>
add.html
<h1>Add</h1>
<input type="text" ng-model="new_name" placeholder="Name">
<br />
<input type="text" ng-model="new_age" placeholder="Age">
<br />
<button ng-click="add()">Add</button>
<hr />
<a href="#/">Back</a>
controller.js
var app = angular.module('myApp', ['ngRoute']);
app.config(function ($routeProvider){
$routeProvider
.when('/',{
templateUrl: 'list.html'
})
.when('/add',{
templateUrl: 'add.html',
});
});
app.controller('Ctrl', function($scope) {
$scope.people = [{'name':'Alex', 'age':25}, {'name':'Dan', 'age': 25}];
$scope.add = function(){
$scope.people.push({'name':$scope.new_name, 'age':$scope.new_age});
$location.path("/");
};
});
問題がある
、私はないですng-model="new_name"
からコントローラメソッド$scope.add = function()
にデータを取得します。追加ボタンを押すと空の文字列が配列にプッシュされます。しかし、モデルとコントローラは、ルーティングとng-viewディレクティブなしで完璧に動作します。スコープに関連した問題だと思います。私の体はこれで助けてくれますか?おかげさまで
アプリのディレクトリ構造とは何ですか? –
すべてのファイルが同じディレクトリにあります。 –