我有一个变量,将由一个或多个控制器使用,由服务更改。在那种情况下,我建立了一个服务来将该变量保存在内存中,并在控制器之间共享。
问题是:每次变量更改时,控制器中的变量都不会实时更新。
我创建这个小提琴来提供帮助。http://jsfiddle.net/ncyVK/
-–请注意,当我增加count的值时,{{countService}}
或{{countFactory}}
永远不会更新。
如何将Service / Factory变量绑定到Controller中的$ 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>
从正在运行的javafx应用程序打开新的javafx窗口时,我无法将fxml变量绑定到控制器类中的局部变量。 请注意,对于正在运行的应用程序,我可以毫无问题地绑定到同名变量,在运行时在正在运行的应用程序中填充ComboBox。欢迎任何解决方案。 调用新类的代码(ServerConfigChooser) 在运行的应用程序中工作的绑定示例(运行时执行的代码) 控制器类中的fxid“cb_01_fxid
这可能是先导错误,但是FXML属性没有绑定到fx:id上的控制器类。我把它简化为一个微不足道的例子,但仍然“没有快乐”。我忽略了什么? 相关的Java代码是... 自我不是这里的问题,我很确定我忽略了一些简单的东西。
问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码
问题内容: 我有一个ng- view以外的NavbarCtrl。我有一个与服务对话以使用户登录的登录控制器。用户登录后,我希望导航栏更新为用户的电子邮件地址。但是,对我而言,一旦用户登录,我似乎无法让Navbar范围更新加载到我的“ Auth”服务中的数据。 这是我的主要index.html: 而我的服务: 还有我的Login和Navbar控制器: 从我的研究中,我会认为$ scope.user
问题内容: 我的控制器中有一些函数可以调用一些数据库函数。所有这些数据库函数都执行“错误回调”,这意味着如果发生数据库错误,它们将执行一个单独的回调来处理该错误。例: 我有与此相似的多个函数,它们正在调用不同的数据库函数。问题是我目前已将onError()复制到每个函数的作用域中,因为在处理错误时我需要req和res变量。我当然可以将res和req传递给数据库函数,然后将它们作为参数传递给错误回调
问题内容: 我是一个有角的新手,正在构建一个应用程序,让我感到困惑的是,有几种方法定义了服务,我从此链接中了解了更多:如何定义服务, 然后似乎没有太大的区别定义服务的方式。 但我只是注意到我认为是不同的一个不同之处: 看到我从这里得到的这项服务http://jsfiddle.net/2by3X/5/ 如果我使用如下所示的“工厂”定义此服务,则一个功能不能调用该服务的其他功能。 我将在浏览器控制台中