使用ngModel进行角度选择会给我[$ rootScope:inprog]错误

时间:2018-01-29 22:10:12

标签: javascript angularjs

我对角度不太好,但我知道一些基础知识。现在,我有接入点,并希望将它们分配给建筑物。我可以使用<select>选择此建筑物。我写了一个简单的控制器,但它不会工作。我做错了什么,我找不到解决办法。

编辑1: 我可以看到选项字段(它们是3)。但是在我选择其中一个后,我的浏览器控制台会抛出异常

编辑2: Plunkr - &gt; https://plnkr.co/edit/EIPs8yVlTSaYQ0EuZLTb(我希望,这个网址有效)..点击“Neuer Access-Point”后,在“Gebäude”选择内容后会出现错误

选择字段

<select ng-model="$ctrl.input.building">
    <option ng-repeat="building in $ctrl.buildings" ng-value="building.id" ng-bind="building.name"></option>
</select>

控制器

(function () {

    function createController(Building) {
        var ctrl = this;

        ctrl.buildings = null;

        ctrl.input = {
            host: '',
            desc: '',
            web: '',
            building: ''
        };

        ctrl.$onInit = function () {
            Building.getAll().then(function (res) {
                if (res.status >= 200 && res.status < 300) {
                    ctrl.buildings = res.data;
                }
            });
        };
    }

    angular.module('app').controller('CreateController', createController)

})();

错误

angular.js:14791 Error: [$rootScope:inprog] http://errors.angularjs.org/1.6.8/$rootScope/inprog?p0=%24apply
    at angular.js:88
at p (angular.js:18897)
at m.$digest (angular.js:18319)
at m.$apply (angular.js:18640)
at Object.$$debounceViewValueCommit (angular.js:29394)
at Object.$setViewValue (angular.js:29372)
at angular.js:33596
at m.$eval (angular.js:18533)
at m.$apply (angular.js:18632)
at HTMLSelectElement.<anonymous> (angular.js:33595)

1 个答案:

答案 0 :(得分:2)

以下是您的代码的问题。

ng-controller="RootController as anythingButNot$root"

将其更改为

ng-controller="RootController"

甚至只是$root

将任何控制器声明为$root会给您带来麻烦。 html是应用程序的根级控制器。在controller as $root内,如果您声明任何$root,它会尝试覆盖{{1}},从而在摘要周期中造成问题,因此您会收到错误。

链接到更新的plunk =&gt; https://plnkr.co/edit/UcJHVmekMqWMXJBnv2Cu?p=preview