首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS -使用服务方法的结果更新DOM

AngularJS -使用服务方法的结果更新DOM
EN

Stack Overflow用户
提问于 2017-11-07 20:37:43
回答 1查看 38关注 0票数 0

我有这样的标记:

代码语言:javascript
复制
<div ng-controller="AutoDeployController as autoDeploy">
   <input type="text" ng-model="autoDeploy.message">
   <p>Message: {{ autoDeploy.message }}</p>
</div>

<button ng-click="autoDeploy.change()">change</button>

这种方法在我的控制器中:

代码语言:javascript
复制
model = this;

model.change = function(){
    model.message = AutoDeployService.returnOne();
};

此方法在我的服务模块中:

代码语言:javascript
复制
function returnOne(){
    return "one";
}

当我使用chrome调试它时,我可以看到model.message被更改为"one",如果我键入文本框,它会更改model.message,任何其他带有model.message的字段都会动态更改.那么,当我单击按钮时,为什么DOM没有更新呢?

根据我使用按钮创建和添加DOM对象的经验,我觉得它可能涉及$compile或另一个系统变量,但我不确定何时/为什么使用系统变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 23:12:35

问题是您的按钮在autoDeploy控制器之外。将该按钮移动到带有控制器的div中,它将调用change方法。

代码语言:javascript
复制
<div ng-controller="AutoDeployController as autoDeploy">
   <input type="text" ng-model="autoDeploy.message">
   <p>Message: {{ autoDeploy.message }}</p>
   <button ng-click="autoDeploy.change()">change</button>
</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47167010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档