ng-model中未定义的值。错误:表达式未定义'在属性中......不可分配

时间:2017-03-01 03:32:26

标签: angularjs angularjs-directive angularjs-scope

我有一个名为index.html的页面,我在页面中嵌入了一个名为add-circle-form的组件。

我想做什么:

当用户点击add-circle-form.html上的选项列表时,我想在add-circle-form.js中保存用户选项并将数据传递给index.js。但是,当我点击下拉列表时出现错误:

<add-campaign-form
on-submit="submit()"
selectedCircles="selectedCircles"></add-campaign-form>

以下是我的代码:

的index.html

function($scope) {
    $scope.selectedCircles = {};
}

index.js(index.html的控制器)在哪里 我在这里定义了对象 selectedCircles

  <md-input-container>
    <label>Target Circles</label>
    <md-select ng-model="$ctrl.selectedCircles"
               md-on-close="clearSearchTerm()"
               multiple>
      <md-select-header>
        <input ng-model="searchTerm"
               type="search"
               placeholder="Search for a circle.."
               class="target-circles-header-searchbox md-text">
      </md-select-header>
      <md-optgroup label="circles">
        <md-option ng-value="circle" ng-repeat="circle in circles |
          filter:searchTerm">{{circle}}</md-option>
      </md-optgroup>
    </md-select>
  </md-input-container>

add-circle-form.html(component)

    $scope.circles = ['Circle A', 'Circle B', 'Circle C', 'Circle D'];
    $scope.searchTerm;
    $scope.clearSearchTerm = function() {
        $scope.searchTerm = '';
    };
    $element.find('input').on('keydown', function(ev){
        ev.stopPropagation();
    });

add-circle-form.js(add-circle-form.html的控制器)

    bindings: {
        onSubmit: '&',
        selectedCircles: '='
    }

add-circle-form.js中的绑定

soft reset

我认为问题在于我使用的是ng-model =&#34; $ ctrl.selectedCircles&#34;但我不知道为什么我不能为$ ctrl.selectedCircles分配值,因为我已经定义了它并且双向限制它。你能建议我如何将数据传递给index.js吗?

1 个答案:

答案 0 :(得分:1)

您需要在index.html

中将selectedCircles更改为selected-circles
<add-campaign-form
on-submit="submit()"
selected-circles="selectedCircles"></add-campaign-form>