嵌套模板未绑定 2 方式到控制器变量



以下设置遇到很多麻烦(如果不进行重大重写,我无法更改)。该问题的概述是,当我通过 ng-include 从通过 ui-view(从 ui-router)加载的另一个部分嵌入部分时,ng-bind 不会绑定回控制器范围。

这是一个简化的示例...这是 UI 路由器

.state('investments', {
        url: '/investments/:Uid',
        abstract: true,
        templateUrl: 'views/investments.html',
        controller: 'InvestmentsCtrl',
        parent: 'root'
      })
        .state('investments.funds', {
          url: '',
          templateUrl: 'views/investments/funds.html',
        })

第一个部分 - 视图/投资.html包括一个 UI 视图

<div>
  <section class="entity-details clearfix" ui-view></section>
</div>

加载资金.html其中包含以下内容

<tabset class="tabbable">
<tab>
    <ng-include src="'/views/investments/_investment.html'"></ng-include>
</tab>

最后_investment.html有一个输入框,它绑定到控制器上的变量(InvestController)

<input type="text" placeholder="Search" class="search-query" ng-model="invsearch.query"/>
<button ng-click="update();">Update</button>

现在在控制器中,我有以下内容:

angular.module('cougarApp')
  .controller('InvestController', function ($scope, $sce, $state, $debounce) {
     $scope.invsearch = {};
     $scope.update= function () {
         console.log($scope.invsearch);
    };

所以它非常简单(尽管所有嵌套包含)。当我单击调用 $scope.update() 的按钮时,底线 - 该函数在控制器中调用,但 $scope.invsearch 的值是一个空对象。即使我在文本框中输入值??

现在,当我不使用初始 ui-view 时,完全相同的代码可以工作。即,如果我的第一个模板直接调用 ng-include,那么一切正常。我对角度仍然有点陌生,显然我在这里缺少一些关于嵌套范围的东西。

请有人在这里帮助我。谢谢

尝试在投资中声明控制器.html像这样。

<div ng-controller="InvestmentsCtrl">
  <section class="entity-details clearfix" ui-view></section>
</div>

相关内容

  • 没有找到相关文章

最新更新