如何处理Http Promise AngularJS

时间:2019-04-15 16:12:24

标签: angularjs

我正在尝试从http Promise的响应中获取数据,并通过自定义指令在attr上设置此数据,但始终在我的指令中获取未定义的数据

promiseComboBox.then((response) =>
    {
        $scope.comboBoxTipoParking = response; //get data
    });

module.directive('comboBox', ['$rootScope', function($rootScope){
    return {
        restrict    : 'E',
        scope       : {
            data  : '=',
            label : '='
        },
        templateUrl : '/Scripts/components/select/select.html',
        link        : function(scope, element, attrs)
        {            
            console.log(attrs);//get here but undefined
            scope.label = attrs.label;


            $('.select2').select2({
                width           : '100%',
                dropdownParent  : $('.modalFocusInput')
            });
        }
    }
}]);

<combo-box label="Parqueadero" data="{{comboBoxTipoParking}}">
</combo-box>

//传递http请求的结果

1 个答案:

答案 0 :(得分:0)

一个人可以使用attrs.$observe

app.directive('comboBox', function(){
    return {
        restrict    : 'E',
        scope       : false,
        templateUrl : '/Scripts/components/select/select.html',
        link        : function(scope, element, attrs)
        {            
            console.log(attrs);//get here but undefined
            attrs.$observe("boxData", function(value) {
                console.log(value);
            });
        }     
    }
});
<combo-box label="Parqueadero" box-data="{{comboBoxTipoParking}}">
</combo-box>

在将标识符data用作属性时要小心。指令normalization去除了data-前缀。