父数组中每个值的 Angular 指令保持同步
angular directive for each value in parent array keep in sync
我有一个包含数组的父对象,对于每个值,我呈现一个指令,通过隔离范围传入该值。对于这个简单的演示,我只需将对象添加到控制器:
$scope.schedule = {
__type: "Fixed",
ids: [101, 102, 103]
}
})
和指令:
app.directive('picker', function() {
return {
scope:{
import: '='
},
template:'<input ng-model="import" >'
}
});
该网页:
<div ng-repeat="i in schedule.ids">
<picker import="i"></picker> Bind: {{i}}
</div>
我现实世界的问题是我有一个需要可重用的日期选择器指令,因此对于渲染的每个日期选择器,我希望底层/原始数组在值更改时保持同步。我做错了吗?
正如您在小提琴中看到的那样,我呈现的指令与其隔离范围值保持同步,但它们形成的底层数组却不同步,如下所示:
https://plnkr.co/edit/Nt9QwiBmlaW3PKPo8XRN?p=info
谢谢
由于数组的元素是原语,因此您需要引用实际数组
<div ng-repeat="i in schedule.ids track by $index">
<picker import="schedule.ids[$index]"></picker> Bind: {{i}}
</div>
演示
使用引用,而不是值,因为 angular 会尝试浅拷贝该对象
<div ng-repeat="(index, value) in schedule.ids track by $index">
<picker import="schedule.ids[index]"></picker> Bind: {{value}}
</div>
import="i"
是 schedule.ids 的浅拷贝,import="schedule.ids[index]"
是 schedule.ids 的引用,
工作演示 https://plnkr.co/edit/QX4Siu4xsJ6poQyy7Ljb?p=preview
相关文章:
- 将JSON对象传递给angular指令
- Angular指令在alertify setContent内容中不起作用
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 向动态生成的DOM添加Angular自定义指令
- 使用指令的angular js中的Like和different
- angular type=[number]指令来阻止粘贴
- Angular Datetimepicker:指令'的模板;uib时间选择器'必须只有一个根元素
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 在其他javascript框架模板中运行angular指令
- 如何在给定的angular应用程序中获取所有指令名称
- Angular,从指令控制器中的控制器触发函数
- AngularJS:带有HTML和angular表达式的指令;编译”;具有外部范围的内容
- 将jquery插件转换为指令angular
- 基于嵌套指令Angular的宽度更改文本
- 如何将函数添加到禁用的指令 - Angular 2
- 我在从我的指令 Angular 访问控制器的范围时遇到问题
- 如何将变量从控制器传递到指令?Angular.JS
- 单指令Angular JS中的可选/多模板URL
- 调用链接函数指令Angular 1 ES6
- 指令angular中的访问范围控制器变量