聚合物和角度:尝试将数据从控制器传递到元素失败
Polymer and Angular: fail in trying to pass data from controller to the element
我的问题是下一个:
-
我有使用自定义聚合物元素的 AngularJS 应用程序;
-
例如,我有一个称为 Main 的控制器。它处理 /main 路由并使用自己的视图 - main.html;
-
主.html里面有我的元素;
-
我在控制器中初始化一个集合,并使用document.querySelector('my-element').collection = $scope.collection将其传递给元素。当我直接打开/main URL 并加载页面时,它可以工作。但是当我直接打开另一条路由然后转到/main 时它不起作用 - 因为控制器在 my-element 工作的 ready() 和 create() 方法之后运行。
我在 my-element create() 方法中使用 setInterval() 有一个糟糕的解决方案。请帮助初学者。
提前感谢!
// my controller
app.controller('MyController', function($scope, collection) {
$scope.collection = collection; // resolved from the route
});
// my element ready() method
...
ready() {
// without timeout it will throw an exception, because JSON.parse parses {{list}} string itself on route state change.
setTimeout(function() {
this.list = JSON.parse(this.getAttribute('list'));
}, 300);
}
<!-- MyController view -->
<my-element list={{collection}}></my-element>
可以使用 Polymer 数据绑定,如下所示:
<polymer-element name="my-element" attributes="listJson">
<template>
....
</template>
<script>
Polymer({
created: function() {
this.list = [];
},
ready: function() {
this.initList();
},
listJsonChanged: function() {
this.initList();
},
initList: function() {
this.list = JSON.parse(this.listStr);
}
})
</script>
</polymer-element>
然后在视图中:
<my-element listJson="{{collection}}"></my-element>
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- AngularJs的单元测试失败是因为Karma没有'无法识别$scope$控制器中的侦听器
- 聚合物和角度:尝试将数据从控制器传递到元素失败
- 循环遍历 ArrayController 失败,因为它不是数组,即使控制器具有正确的数据模型也是如此
- 在 angularJS 中向控制器注入服务失败
- MVC3控制器操作以编程方式返回一个失败的发布请求
- AngularJS'否则'控制器不'如果另一个控制器上的解析失败,则不运行
- Angular Formly自定义类型控制器在部署时失败
- 重新加载页面时控制器间通信失败
- 在Rails中,如何在视图中显示控制器操作成功或失败的JSON状态消息
- 如何在单元测试中通过jasmine spy向angular控制器返回被拒绝/失败的承诺
- 控制器调用失败
- Ember.js:两个控制器之间的依赖关系失败
- Angular-Mocha-当我将多个控制器添加到同一个模块时,测试失败
- Jquery$.ajax()调用将具有其他参数的关联数组传递给MVC控制器失败
- Ajax调用spring控制器总是失败
- EmberJS - 断言失败:#each 循环的值必须是数组.您通过了(生成的应用程序控制器)
- 防止控制器文本提交失败