我的情况在我的角度服务中,我有许多属性。这些属性链接到控制器。
服务:
angular.module('...')
.factory('PollServ', function PollServ($http, ...) {
var service = {
question: '',
votes: [[]]
}
...
// make http request to API
var request = $http({ ...
// once the value is retrieved, update properties
request.then(function (res) {
service.question = res.data.question;
...
}
控制器:
angular.module('...')
.controller('PollCtrl', function PollCtrl(..., PollServ) {
$scope.question = PollServ.question;
$scope.votes = PollServ.votes;
...
现在,尽管票数正在正确更新,但问题不是。我没有做任何不同的事情,除了votes
是一个数组,而question
只是一个常规字符串。我认为该数组可能与能够动态更新有关,而不是简单的字符串。
我该如何使其工作,而不必不必要地将字符串变成数组?
您自己说了 - 问题是string
,因此不会在您的控制器/视图中更新。
您能做的就是将问题转变为对象。例如:
在工厂
var service = {
question: {
name: ''
},
votes: [[]]
}
...
service.question.name = res.data.question;
然后,您需要将视图中的参考更改为question.name
。