angularjs – 服务/工厂到控制器的绑定变量

我有一个变量将被一个或多个控制器使用,由服务更改。
在这种情况下,我建立了一个服务,保持这个变量在内存中,并在控制器之间共享。

问题是:每次变量更改时,控制器中的变量不会实时更新。

我创建这个小提琴帮助。 http://jsfiddle.net/ncyVK/

—请注意,当我增加count的值时,{{countService}}或{{countFactory}}永远不会更新。

如何在服务/工厂变量绑定到$ scope.variable在控制器?我做错了什么?

您不能绑定变量。但是您可以绑定包含此变量的变量访问器或对象。这里是固定的 jsfiddle

基本上你必须传递到范围的东西,它可以返回/或保持当前值。例如。

厂:

app.factory('testFactory',function(){
    var countF = 1;
    return {
        getCount : function () {

            return countF; //we need some way to access actual variable value
        },incrementCount:function(){
           countF++;
            return countF;
        }
    }               
});

控制器:

function FactoryCtrl($scope,testService,testFactory)
{
    $scope.countFactory = testFactory.getCount; //passing getter to the view
    $scope.clickF = function () {
        $scope.countF = testFactory.incrementCount();
    };
}

视图:

<div ng-controller="FactoryCtrl">

    <!--  this is now updated,note how count factory is called -->
    <p> This is my countFactory variable : {{countFactory()}}</p>

    <p> This is my updated after click variable : {{countF}}</p>

    <button ng-click="clickF()" >Factory ++ </button>
</div>

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...