删除对象属性在Angular中不起作用?

时间:2017-04-29 19:03:56

标签: javascript angularjs object

使用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

1 个答案:

答案 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.
};