所以,这里是我有问题:如何解决这个JavaScript变量引用乱七八糟
app.controller 'MainCtrl', ($scope, TestData) ->
$scope.name = 'World'
TestData.get(0).then (data)->
$scope.elem = data
TestData.get(1).then (data)->
$scope.elem2 = data
$scope.callFunc = ->
TestData.modify1()
TestData.modify2()
app.factory 'TestData', ($q,$timeout)->
data = [{
name: "TestData #1"
id: 1
},{
name: "TestData #2"
id: 2
}]
funcs = {}
funcs.get = (id)->
deferred = $q.defer()
$timeout(->
deferred.resolve(data[id])
,500)
return deferred.promise
funcs.modify1 = ->
data[0].name = "DataTest #1"
funcs.modify2 = ->
data[1] = {
name: "DataTest #2"
id
}
return funcs
我不知道我解决这个怎么弄,但我想在一个数组来更新一个元素。我明白替换它是行不通的。但我该如何解决这个问题?
如果它只是名称/ ID它不会是一个问题。但实际的模型有很多不同的数据,我不想单独更新它们。
这里是一个展示plnkr问题(如果它帮助):http://plnkr.co/edit/cBXJsIghlIeIUQGLfZfe?p=info
(我不明白为什么后面不起作用的理论,我主要是寻找最有效的方式来解决这个问题。)
如何使用angular.extend覆盖旧对象中的属性? http://plnkr.co/edit/SZa4KUMp7MtG3FxNaoVY –