所以,這裏是我有問題:如何解決這個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 –