我想在更改时更新存储在constructor
中的数据对象。我怎样才能做到这一点?目前,我有这样的:如何刷新并从构造函数中提取对象
HTML
<dummy>
<div ng-repeat="key in $ctrl.data">{{ key }}</div>
</dummy>
JS(ES6):
class Dummy {
constructor() {
this.data = [];
this.runData();
}
runData() {
const inter = setInterval(() => {
this.data.push('item');
console.log(this.data);
}, 1000);
setTimeout(() => {
clearInterval(inter);
}, 5000);
}
};
app.directive('dummy',() => {
return {
controller: Dummy,
controllerAs: '$ctrl'
};
});
我也试着写一个守望者:
app.directive('dummy',() => {
return {
controller: Dummy,
controllerAs: '$ctrl',
link(scope, el, a, ctrl) {
scope.$watch(ctrl.data, function (newValue, oldValue) {
ctrl.data = ctrl.data;
}, true);
}
};
});
控制台登录它不错,但 - 作为构造函数在开始运行 - 视图是空的。我能做什么?
您可以尝试对您希望关注的数据使用'watcher',然后在值更改时执行一些任务。 – Jagrut
我试着为它写'$ watch',但我没有成功。我在我的答案中更新了代码。 –
你可以让你的代码变成一个可运行的例子吗?最好用jsfiddle或plunker链接 – wvdz