Angularjs:数组赋值问题

时间:2014-02-18 12:19:56

标签: javascript angularjs

我面临一个奇怪的问题,我已经定义了一个包含数组的对象(全局用于应用程序) 对象看起来像

var _global = {
        document: {}, // represent selected item
    };

在我的服务中我有类似的东西

_global.document.signers =[{name:'test',email:'test@test.com'}];

工作正常。现在,如果我像

那样推送元素
_global.document.signers.push({name:'test',email:'test@test.com'});

并在控制器中使用

var signers = _global.document.signers;

它工作正常。视图使用新值进行更新

但如果我做某事

_global.document.signers = [{name:'newTest',email:'newtest@test.com'}];

全局对象更新但视图不呈现新值,如果我将其更改为推送视图开始呈现新值

有人可以指导我,我做错了。 任何帮助将不胜感激

更新

感谢@shani的帮助,我已经使用

解决了这个问题
var draft = globalService.getGlobal(); //global service for maintaining global objects
$scope.draft = draft;

并在视野中

 <ul class="list-unstyled font-11px" >
       <li ng-repeat="(signerIndex, signer) in draft.document.signers">
    </li></ul>

1 个答案:

答案 0 :(得分:2)

将全局对象分配给控制器范围,因为如果服务对象发生更改,服务就是单例,控制器将自动对其作出反应。