使用delete
删除对象属性似乎不适用于角度。
对象保持不变。
奇怪的是,我可以很好地为对象添加属性。
可能是因为对象在$scope
中公开了吗?但是,如何从中删除属性?
这是我的代码
const {remote} = require('electron');
angular.module('myapp', []).service('db', function(){
var data = remote.getGlobal('data');
return {
removeItem: function(item){
console.log(delete data[item]); -> returns false!!
}
}
});
我从控制器调用该方法:
$scope.removeAction = function(item){
db.removeItem(item);
};
按下按钮时会调用removeAction
答案 0 :(得分:2)
目前,您只需修改data
服务中的db
对象。我没有看到任何直接与您的$scope
变量绑定的变量引用。因此,您必须再次从db
(服务)获取数据,因为您希望在$scope
变量上看到更改。
$scope.removeAction = function(item){
//may be you have to update data variable once again
//data = remote.getGlobal('data'); //then removeItem
db.removeItem(item);
//retrieve latest list from `db` service once again.
$scope.data = db.getData(); //assumed data is collection retrieved from db.
};