【发布时间】:2014-06-26 14:37:36
【问题描述】:
我正在通过构建 Web 应用程序来学习 AngularJS。在我的服务模块中有一个原型对象(在小提琴中,我在控制器中模拟了它)。
现在,当我尝试在小提琴中更新子元素 - repeatableInfo - 时,它没有设置。我的猜测是,在 JavaScript 中对象是作为引用传递的。当使用 Object.create 时,会创建一个新的对象副本,并且所有属性都成为原型属性?
var apiData={};
apiData.formObjectProto = {
'commonInfo': '',
'repeatableInfo': [
{'aInfo': ''}
]
};
$scope.mainObj = Object.create(apiData.formObjectProto);
当它被如下替换时,一切正常。
var apiData={};
apiData.formObjectProto = {
'commonInfo': '',
'repeatableInfo': [
{'aInfo': ''}
]
};
//$scope.mainObj = Object.create(apiData.formObjectProto);
$scope.mainObj = {
'commonInfo': '',
'repeatableInfo': [
{'aInfo': ''}
]
};
所以我的问题是,我们不能在 Angular 中使用 OOP 概念吗?或者我缺少一些东西。请帮忙
更新 1
使用以下帮助。那么,不推荐使用 Object.create(),而是使用 angular.copy() 来创建原型对象的克隆?
$scope.mainObj = angular.copy(apiData.formObjectProto);
【问题讨论】:
标签: angularjs prototype angularjs-scope