2016-11-16 63 views
0

所以我正在使用Angular 1.5。我正在努力完成一些非常微不足道的事情。如果這聽起來有點不妥,因爲後端更適合我。我想要做的是將範圍變量傳遞給輸入屬性。這是一個已知的問題?如何將角度範圍變量傳遞給原生輸入最小特性?

angular.module('CompDirective', 
    ['ngMaterial'] 
).directive('pitchButton', function(){ 
    return { 
     restrict: 'E', 
     scope: { 
      campaign: '=' 
     }, 
     templateUrl: '/static/html/compensation.html', 
     link: function(scope, element, attrs){ 
      scope.minCompensation = 100; 
     } 
) 

和在我的HTML。

<input 
    type="number" 
    ng-model='fields.monetary_compensation' 
    name="compensation" required 
    ng-pattern='/^[1-9]+[0-9]*$/' 
    placeholder="Compensation" 
    min="minCompensation" 
></input> 

呼應了minCompensation按預期工作,但與minCompensation帕拉姆分鐘不確認這使我相信,有一個與輸入指令的分PARAM能夠識別範圍變量的問題。

回答

1

min不在documentation,所以我猜它不接受角度表達式。

您需要<input ... min="{{minCompensation}}" />

插值值。或者,你可以創建自己的ng-min and ng-max directives

+0

奇怪。爲什麼會使用硬編碼值?無論如何,我會接受這個,但也發佈我自己的解決方案 – Dap

+1

因爲'min'是一個HTML5屬性,而不是一個Angular指令。在您發佈的解決方案中,您使用的是Angular指令來動態設置HTML5屬性 - 這是更好的方法。 – adam0101

0

範圍值需要插值/評估。因此,ng-attr屬性將評估和綁定適當的值,並將該變量括起來。

代碼

<input 
    type="number" 
    ng-model='fields.monetary_compensation' 
    name="compensation" 
    placeholder="Compensation" 
    ng-attr-min="{{minCompensation}}" 
></input> 
相關問題