当我尝试在保存功能中访问它时,$ scope中的模型不存在。
根据以下代码:desc
具有文本输入中的值,但desc2
没有。
代码有什么问题,或者在使用$ scope时我是否遗漏了什么?
HTML:
<input type="text" ng-model="myModel.description">
的JavaScript
MyApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.save = function() {
var desc = this.myModel.description; // This has a value
var desc2 = $scope.myModel.description; // This does NOT have a value
};
}]);
修改 添加了plunker:http://plnkr.co/edit/3l9ZE7O2wpbfnH7XPA9X?p=preview
此问题似乎与使用ng-include有关。 如果我不使用ng-include,那么它似乎工作正常。
答案 0 :(得分:2)
ng-include
元素引入了子范围。现在,您的myModel
附加给了孩子,但您的控制器$scope
是父母。家长范围无法看到孩子的变量,但孩子可以看到他们的父母。
您可以将myModel = {};
添加到您的控制器,它应该可以正常工作。这样,孩子的范围就会引用他的父母的身份。 myModel
并且不会创建自己的。