关于javascript:AngularJS:ng-model不更新对象,但更新对象中的字段

AngularJS: ng-model not updating object, but updates field in object

本问题已经有最佳答案,请猛点这里访问。

我在安古拉吉斯项目工作,我有以下问题。我有一个密码:

HTML格式:

1
2
3
<form>
  <input ng-model="someVariable" type="text"/>
</form>

详细说明:

1
{{ someVariable }}

AngularJS控制器获取详细信息.html:

1
2
3
4
angular.module('SomeModule')
  .controller('DetailsController', function ($scope) {
  $scope.someVariable = {};
});

有了这段代码,somevariable就不显示了,但是当我把ng模型改为somevariable.somefield时,我试图显示它…它起作用了!有人能解释一下为什么吗?


是-someVariable是一个基元(布尔值、空值、未定义、数字、字符串、符号(ecmascript 6中新增))。当Angular正在搜索要插入的变量时,如果在范围中找不到该变量,则只有当该变量不是原始变量(例如对象)时,才能查找原型链。

ng-include创建了一个新的作用域,而您的变量是一个原语,因此找不到它。

当您将它放在一个对象下时,在ng-include创建的新子作用域中找不到该对象,但在父作用域中进行搜索,然后找到并呈现该父作用域。

有关更详细的信息,请阅读了解范围。