Eug*_*gen 5 javascript angularjs
我正在检查 Angular Bootstrap UI,尤其是服务$modal并注意到一件有趣的事情。
在他们的示例中,' http://plnkr.co/edit/E5xYKPQwYtsLJUa6FxWt?p=preview ' 在附加到弹出窗口的控制器中,他们将所选项目包含在另一个内部属性中
$scope.selected = {
item: $scope.items[0]
};
Run Code Online (Sandbox Code Playgroud)
而不是刚刚
$scope.selected = $scope.items[0];
Run Code Online (Sandbox Code Playgroud)
事实上,他们的代码按预期工作,而我的版本却没有。
为什么需要这个?这里的 JavaScript 问题是什么?
谢谢
他们嵌套该属性是因为他们想在模式中执行此操作:
<li ng-repeat="item in items">
<a ng-click="selected.item = item">{{ item }}</a>
</li>
Run Code Online (Sandbox Code Playgroud)
ng-repeat为每个创建一个子范围<li>(模式也创建一个子范围);如果您有$scope.selected = $scope.items[0];,selected则 ng-click 中的设置将在子范围中设置属性,但不会在父范围中设置属性(这就是您在该示例中想要的)。另请参阅我的回答。如果是
$scope.selected = {
item: $scope.items[0]
};
Run Code Online (Sandbox Code Playgroud)
更改将影响父范围的selected对象。
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |