双向绑定角度分量与父控制器

时间:2018-02-08 19:43:42

标签: javascript angularjs

我有一个角度组件(供应商过滤器),我想将数据传入父控制器或从父控制器传递数据。目的是从mainInfo创建一个过滤器,并将该数据传递回父控制器,在那里它将反映组件中的过滤。我的问题是这个mainInfo变量在组件控制器中返回undefined。这是我的代码:

HTML

pipelineJob('example') {
  definition {
    cpsScm {
      scm {
        git('https://github.com/jenkinsci/job-dsl-plugin.git')
      }
    }
  }
}

家长控制器:

<div ng-controller="kanban as ctrl">
<vendor-filters mainInfo="ctrl.mainInfo"></vendor-filters>
<div class="qt-kb">
    <kanban-list label="Incoming" type="incoming" cards="ctrl.mainInfo.incoming"></kanban-list>
    <kanban-list label="In Progress" type="progress" cards="ctrl.mainInfo.inProgress"></kanban-list>
    <kanban-list label="Waiting For Documentation" type="docs" cards="ctrl.mainInfo.documentation"></kanban-list>
    <kanban-list label="Pending Approval" type="closed" cards="ctrl.mainInfo.closed"></kanban-list>
</div>

组件控制器:

app.controller("kanban", ["$scope", "assignmentDataService", "globalSpinner",  function ($scope, assignmentDataService, globalSpinner) {

const vm = this;
vm.mainInfo = [];

activate();

function activate() {
    getData();
}

  function getData() {
    var promise = assignmentDataService.getData()
        .then(function(data) {
            vm.mainInfo = data;
        });

    globalSpinner.register(promise);
};

}]);

基本上我试图将mainInfo从父控制器转移到组件中,反之亦然。知道为什么这不起作用吗?

1 个答案:

答案 0 :(得分:1)

首先使用kebab-case作为属性:

 <vendor-filters  ̶m̶a̶i̶n̶I̶n̶f̶o̶ main-info="ctrl.mainInfo"></vendor-filters>

下一步

解决此问题:

app ̶.̶c̶o̶n̶t̶r̶o̶l̶l̶e̶r̶(̶'̶k̶a̶n̶b̶a̶n̶'̶)̶ .component("vendorFilters", {
相关问题