2017-03-29 38 views
0

是否可以將所有屬性從組件實例傳遞到組件模板中的某個元素?在AngularJS組件中傳遞所有屬性

例如,假設我有一個非常簡單的組件:

angular.module('...').component('customInput', { 
    templateUrl: '<input ng-minlength="8">', 
    controller: function() { }, 
    bindings: { } 
}); 

有什麼辦法,我可以做這樣的事情:

<custom-input arbitrary-directive></custom-input> 

,並取回

<input ng-min-length="8" arbitrary-directive></input> 

沒有指定arbitraryDirective作爲綁定具體?我只想將所有未指定的屬性傳遞給內部元素。

回答

0

我得到的解決方案比聲明更重要。這也是一種哈克和脆弱。所以我不是可怕高興,但它的作品。

在控制器中添加一個$postLink掛鉤,看起來是這樣的:

this.$postLink = function() { 
    var input = $element.find('input'); // from the controller's second parameter, $element 
    // copy directives and stuff over to inner input element 
    angular.forEach($attrs, function (value, key) { 
    if (key[0] === '$') { 
     return; 
    } 

    var attr = $attrs.$attr[key]; 
    input.attr(attr, value); 
    }); 
} 
相關問題