AngularJS:数据正在控制器中更新,但不显示在HTML中
AngularJS: data is being updated in controller but it is not shown in the HTML
在我的AngularJS应用程序中,我有以下代码:
示例.html
<div>
<p>{{name}}</p>
</div>
<div>
<button ng-click="someFunction()"> </button>
</div>
示例控制器.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}}。有人可以帮助我吗?
角度生命周期可能需要一些时间来适应,但简而言之,角度指令只有在角度事件(如ng-click)期间才会被重新评估。 这是使用ng-click
而不是onclick
如此重要的原因之一。
在这种情况下,如果你的方法没有在角度事件循环中被调用(比如,它是通过jQuery、一个简单的window.onload
调用或默认的window.setTimeout
方法调用的),你不会看到任何变化。 您必须使用ng-event或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/
相关文章:
- Brightcove获取/显示HTML中的当前视频标题和描述
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 使用jqLite隐藏和显示html元素
- 如何在不打断标记的情况下突出显示html字符串中的文本
- JS来显示HTML标记
- 如果javascript打开/关闭,则隐藏和显示html代码
- 用javascript显示html表
- 显示HTML代码块
- Regex有助于突出显示html中匹配文本的角度过滤器
- 为什么WebBrowser控件在保存后不能正确显示HTML
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- 如何使用window.showModalDialog()显示HTML内容
- JavaScript if else 语句来显示 html 标签
- 使用 js 函数显示 HTML 表单的结果
- 如何在不点击的情况下突出显示 HTML 中的文本
- 如何隐藏和显示 html 输入文本和段落
- 使用 javascript 解析和显示 HTML 音频当前时间
- 有什么方法可以在HTML页面中显示HTML代码吗
- 在自动完成jqueryUi中显示html
- 单击并用CTRL+C复制值时高亮显示html表格单元格