AngularJS:使用angucomplete并且数据并不总是在加载时正确填充

时间:2014-10-23 06:26:39

标签: angularjs angularjs-directive angular-ngmodel auto-populate

我正在编写一些用于添加和编辑资源的表单。我正在使用Angucomplete-alt(https://github.com/ghiden/angucomplete-alt)和我自己的下拉指令来从数据库中获取选择。它们与主窗体位于不同的控制器中。我的常规文本字段在编辑表单上填写正常,但是我对Angucomplete有问题并选择。范围数据存在于页面加载中。我已经编写了一个函数来使用URL中的ID来获取它。但除非您重新加载页面,否则它们并不总是填充。我怎样才能让它们每次都填充?

这是填充表单的函数:

 $scope.popForm = function(clientId) {
        var config = {
            params: {clientId: $stateParams.clientId},
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        };
        $http.get('assets/php/clients/pop_client.php', config)
            .then(function(data) {
                    var realStatus = data.data.status;
                    if(realStatus == 'success'){

                        //Set the $scope from the JSON response
                        $scope.client = data.data.client;


                        //Broadcast a bunch of events with data to the dropdowns
                        $timeout(function() { 
                            $rootScope.$broadcast('setTypeDropdown', data.data.client.type);
                            $rootScope.$broadcast('setCatDropdown', data.data.client.category);
                            $rootScope.$broadcast('setTeamDropdown', data.data.client.team);
                            $rootScope.$broadcast('setA1Dropdown', $scope.client.assigned1);
                            $rootScope.$broadcast('setA2Dropdown', $scope.client.assigned2);
                        });
                    }
        });
};

我有另一个控制选择的控制器,这就是为什么有数据广播到其孤立的范围。这是$ on函数之一,因为它们基本相同。 (必须有一种不那么令人费解的方式......)

// Options are the select options that I get from the database 
// for each instance of the select controller

$scope.$on('setTypeDropdown', function(event, type) {
                    var i = 0;
                    $.each($scope.options, function(){
                        if (this.value == type){ 
                                $scope.client.type = $scope.options[i];
                        }
                        i++;
                    });
});

那么,有没有更好的方法呢?因为这不太有用......

编辑: Angucomplete-alts现在运作良好。只是我复杂的选择担心。不管是否对他们进行去角度化并且不使用我的指令会更好。

0 个答案:

没有答案