Angular JS选择错误

时间:2015-03-23 23:47:28

标签: javascript jquery json angularjs selectize.js

这让我疯了,因为我找不到真正的理由。

我有一个Angular 1.3.2项目。在一个视图中,一个控制器,一个工厂和两个json文件作为源。我添加了2个选择菜单,两者都很完美。

我做了一个保存,以创建一个新文件,新控制器,新工厂,新的json文件。

html我保持不变,但调整了选择以匹配新数据:

 <input type="text" selectize="partnerSelectMenu.options" options="partnerList" ng-model="partner.selected" />

工厂是

    app.factory('DatagroupsFactory', ['$http',
  function($http) {

    var datagroupsData;

    return {
      getDataGroups: function() {
        if (!datagroupsData) {
          datagroupsData = $http.get('scripts/data/datagroups.json').then(function(response) {
            return response.data;
          });
        }
        return datagroupsData;
      }
    };

  }
]);

控制器是

    app.controller('AddDatagroupCtrl', function($scope, $log, PartnerFactory) {

  var partnerList = [];

  PartnerFactory.getPartners().then(function(response) {
    $scope.partnerList = response.partners;
  });

  $scope.partnerSelectMenu = {
    options: {
      valueField: 'name',
      labelField: 'name',
      searchField: ['name'],
      plugins: ['remove_button']
    }
  };

});

json的一个片段:

    {
  "partners" : [
    {
      "value" : "CPPRT0002706",
      "name" : "Axis Promotions"
    },
    {
      "value" : "CPPRT0005006",
      "name" : "Band of Outsiders"
    }
  ]
}

这里是踢球者:菜单正常工作,正如预期的那样,并显示我的数据。问题是我也遇到了这个错误:

enter image description here

我试过评论这段文件的每一部分。没有。日志调试语句显示数据正确传递;哎呀, 菜单甚至有用

我网站上的其他页面带有选择性菜单 - 使用相同的选项 - 不会抛出此错误。我对如何追踪而感到茫然。

1 个答案:

答案 0 :(得分:0)

我认为你需要改变:

var partnerList = [];

$scope.partnerList = [];

在您的控制器中。

  app.controller('AddDatagroupCtrl', function($scope, $log, PartnerFactory) {

  $scope.partnerList = [];

  PartnerFactory.getPartners().then(function(response) {
    $scope.partnerList = response.partners;
  });

  $scope.partnerSelectMenu = {
    options: {
      valueField: 'name',
      labelField: 'name',
      searchField: ['name'],
      plugins: ['remove_button']
    }
  };
});

我认为在您的承诺返回之前,partnerList是未定义的,您的选择是试图从中获取名称属性。