首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS: ng-模型未应用于控制器实例化

AngularJS: ng-模型未应用于控制器实例化
EN

Stack Overflow用户
提问于 2014-08-09 06:54:23
回答 2查看 105关注 0票数 0

我正在使用Angular创建一个web应用程序规划器,并且我在使用<select>框时遇到了一些困难,因为它不会根据用ng-model表示的变量来改变值。

我的架构如下:

我正在使用ui-router,它为我提供了不同的视图状态,一个视图状态对应于我的计划器的每一页。根HTML页面有一个名为MainController的控制器。这就是我设置JSON模型的地方,我想在整个规划器中使用$scope.Master = {}。规划器的所有页面都应继承此模型,并继续对其进行修改/添加。

然后我有了我的4页计划书,像这样:

Start -> Accounts -> Settings -> Review

每个页面都有自己的控制器,每次我访问该页面时都会实例化该控制器。在Start页面上,我有一个<select>框,其中包含使用StartController动态填充的ng-model="$scope.Master.Start.selectedAccount" (因此,每次我转到开始页时都会填充它)。

这个<select>在第一次访问页面时效果很好,但是如果我转到Accounts然后返回,选择框将返回到默认值“请选择一个帐户”,而不是绑定到<select>框的$scope.Master.Start.selectedAccount模型中的选定帐户

我以为我可以做一些像$scope.$apply之类的事情,以便将绑定重新应用到DOM对象,但这只是给了我一个错误,说它已经被消化了。

在页面加载两次或更多次后,如何将绑定应用于<select>框?

EN

回答 2

Stack Overflow用户

发布于 2014-08-09 07:01:53

这可能是因为每次返回到原始页面时,都会实例化一个新的控制器,因为它在最初离开时已从DOM中删除。因此,$scope.Master.Start.selectedAccount。要保存此文件,您可以

  1. 在主应用程序上使用服务/工厂单例将此值保存为https://docs.angularjs.org/api/ng/service/$rootScope
  2. Put

上的控制器的全局变量https://docs.angularjs.org/guide/services#!

  • Save $scope.Master.Start.selectedAccount
票数 0
EN

Stack Overflow用户

发布于 2014-08-09 07:49:52

我真的很抱歉。我意识到我正在使用ng-repeat而不是ng-options来填充<select>,不知道我是如何做到的……这就是问题所在

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25213397

复制
相关文章

相似问题

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