AngularJS:数据正在控制器中更新,但未显示在 HTML
AngularJS: data is being updated in controller but it is not shown in the HTML
在我的 AngularJS 应用程序中,我有以下代码:
example.html
<div>
<p>{{name}}</p>
</div>
<div>
<button ng-click="someFunction()"> </button>
</div>
exampleController.js
angular.module('myApp').controller('exampleController', ['$scope', 'myService',
function($scope, myService) {
$scope.someFunction = function() {
}
function updateName() {
$scope.name = myService.getName();
}
updateName();
}]);
问题是 {{name}} 仅在我单击按钮时在 html 中更新。 updateName() 函数运行正确并且 $scope.name 被正确定义,但 {{name}} 仅在我单击某个按钮调用某个函数时显示。我不知道为什么 {{name}} 在页面加载时没有显示。有人可以帮助我吗?
angular 生命周期可能需要一些时间来适应,但简而言之,angular 指令只会在 angular 事件期间重新评估,例如ng-click. 这是使用 ng-click
而不是 onclick
如此重要的原因之一。
在这种情况下,如果您的方法没有在 angular 事件周期内被调用(比如它是通过 jQuery 调用的),一个简单的 window.onload
调用,或者默认的 window.setTimeout
方法),您将看不到任何更改。您必须使用 ng- 事件或 angular 的 $timeout
服务。
要在您的应用程序启动时向 运行 发送内容,您可以使用 module.run
,如本页所示。
https://docs.angularjs.org/guide/module
angular.module('MyMod', []).run(
//Your code here, like
updateName();
)};
此外,请尝试在此处阅读更多关于生命周期的信息:
http://onehungrymind.com/notes-on-angularjs-scope-life-cycle/
在我的 AngularJS 应用程序中,我有以下代码:
example.html
<div>
<p>{{name}}</p>
</div>
<div>
<button ng-click="someFunction()"> </button>
</div>
exampleController.js
angular.module('myApp').controller('exampleController', ['$scope', 'myService',
function($scope, myService) {
$scope.someFunction = function() {
}
function updateName() {
$scope.name = myService.getName();
}
updateName();
}]);
问题是 {{name}} 仅在我单击按钮时在 html 中更新。 updateName() 函数运行正确并且 $scope.name 被正确定义,但 {{name}} 仅在我单击某个按钮调用某个函数时显示。我不知道为什么 {{name}} 在页面加载时没有显示。有人可以帮助我吗?
angular 生命周期可能需要一些时间来适应,但简而言之,angular 指令只会在 angular 事件期间重新评估,例如ng-click. 这是使用 ng-click
而不是 onclick
如此重要的原因之一。
在这种情况下,如果您的方法没有在 angular 事件周期内被调用(比如它是通过 jQuery 调用的),一个简单的 window.onload
调用,或者默认的 window.setTimeout
方法),您将看不到任何更改。您必须使用 ng- 事件或 angular 的 $timeout
服务。
要在您的应用程序启动时向 运行 发送内容,您可以使用 module.run
,如本页所示。
https://docs.angularjs.org/guide/module
angular.module('MyMod', []).run(
//Your code here, like
updateName();
)};
此外,请尝试在此处阅读更多关于生命周期的信息: http://onehungrymind.com/notes-on-angularjs-scope-life-cycle/