我不确定是否有人问过这个问题,但是从 AngularJS 指令中弄乱数据模型是一种好习惯(不是可以做的)吗?
例如,如果在我的控制器中有一些对象,例如:
app.controller("MyCtrl", function () {
$scope.obj.setOfKnives = ["Ginsu", "Steak"];
});
我有一些按钮,上面有一个指令,比如(为简洁起见):
<button add-knife>Add a Knife</button/>
在那个 add-knife 指令中,弄乱那个 setOfKnives 数组是一种好的做法(同样,不是好的做法),比如:
app.directive("addKnife", function () {
return {
"restrict": "A",
"link": function (scope, element, attr) {
scope.addAKnife = function (theKnife) {
scope.obj.setOfKnives.push(theKnife);
};
element.on("click", function () {
scope.addAKnife("Serrated");
});
}
};
});
(我相信最好将该指令设为带有模板的元素指令......)
那么这是一种好的做法吗?或者我应该使用指令将 DOM 对象添加到页面,并让一些控制器功能负责根据 DOM 从 setOfKnives 数组中添加和删除项目?