如果你有一个控制器什么是数据绑定的首选方法,多个较小的或一个大对象,例如:
$scope.username = 'John Doe';
$scope.email = 'me@me.com';
$scope.city = 'Amsterdam';
或
var user = {};
user.username = 'John Doe';
user.email = 'me@me.com';
user.city = 'Amsterdam';
$scope.user = user;
答案 0 :(得分:2)
我会选择第二个,来自angularjs wiki
范围继承通常是直截了当的,你通常不会 甚至需要知道它正在发生......直到你尝试双向数据绑定 (即表格元素,ng-模型)到基元(例如,数字,字符串, boolean)在子范围内从父范围定义。它 没有像大多数人期望的那样工作。怎么了 是孩子范围得到自己的隐藏/阴影的属性 同名的父属性。这不是AngularJS的内容 做 - 这就是JavaScript原型继承的工作原理。新 AngularJS开发人员通常没有意识到ng-repeat,ng-switch, ng-view和ng-include都创建了新的子范围,所以问题就出现了 经常出现涉及这些指令的时候。 (见这个例子 为了快速说明问题。)
通过遵循以下内容,可以轻松避免使用原语这个问题 "最佳实践"总是有一个'。在您的ng模型中 - 观看3 分钟值得。 Misko演示了原始绑定问题 NG-开关。
有一个'。'在你的模型中将确保原型继承 在游戏中。所以,使用
float
如果您确实需要/需要使用原语,则有两种解决方法:
在子范围中使用$ parent.parentScopeProperty。这会阻止 子范围来自创建自己的属性。定义一个函数 父范围,并从子系统调用它,传递原语 价值高于父母(并非总是可能)
https://github.com/angular/angular.js/wiki/Understanding-Scopes