Anguler Ui.router $状态模板ng-models是$ rootScope

时间:2015-06-09 15:45:05

标签: javascript angularjs angular-ui-router

我得到一个非常奇怪的问题,我的$ state控制器的ui-view模板正在与$ rootScope交互,而不是$ scope。

但是它会在初始时隐藏$ scope变量。

例如: 如果我有$ scope.name =" test"

并在我的模板中

<input ng-model="name">

输入将成功进行&#34;测试&#34;插入正常。

然而,当我有一个$ scope。$ watch(&#34; name&#34;)它不会触发,而只是$ rootScope观看&#34; name&#34;会开火......我是否错误地连接了我的路线?

我有一个主要的应用程序&#34;得到它的主要依赖(我的组件):

angular.module('p1poc', ['ngAnimate', 'ngMaterial', 'ngWebSocket' ... 'myModule');

有问题的模块是&#34; myModule&#34;:

angular.module('myModule', ['ui.router', 'infinite-scroll', 'pasvaz.bindonce'])

  .config(['$stateProvider', function ($stateProvider) {
    $stateProvider.state('search', {
      url: '/search?query',
      controller: 'MainCtrl',
      templateUrl: 'main/main.html',
      label: 'Search',
      access: {free: true}
    });
  }])

如您所见,我正在注入控制器以及模板

我的模板,例如像这样的html元素:

  <md-select placeholder="Sort By" ng-model="orderBy">
                <md-option value="_score" checked>Relevance</md-option>
                <md-option value="citingsrcscount">Cited Count</md-option>
                <md-option value="sortdate">Publication Date</md-option>
              </md-select>

但如上所述,ng-model更新$ rootScope.orderBy而不是$ scope.orderBy。

但是在初始时,它成功地从$ scope.orderBy获取数据...只是没有绑定2种方式

1 个答案:

答案 0 :(得分:0)

在您要在HTML

中使用它之前,尝试为$ scope.name指定一个空值