我的模型是填充在控制器,當我綁定數據行爲就像它在那裏,但輸入框是空白。只要我輸入一個值,一切正常。但是,如果默認值爲空白,這會讓我的用戶感到困惑。輸入[數字]不顯示使用角度和嘰嘰喳喳引導值
<div class="row" ng-controller="RangeInputCtrl">
<div class="col-md-12">
<label class="leftwall">
Value:
<input type="number" class="form-control"
ng-model="percentOfMax.current"
min="{{percentOfMax.min}}"
max="{{percentOfMax.max}}"
ng-change="changeValue()" />
</label>
</div>
</div>
NG-值是無用的這個指令,由於角劫持輸入元件。代碼在沒有min和max的情況下工作得更糟,所以我知道它們是必需的(或者至少需要採取行動)。
我包裹在一個標籤輸入指令,由於Twitter的引導3
(function() {
'use strict';
var controllerId = 'RangeInputCtrl';
angular.module('app').controller(controllerId,['$scope', buildRangeInput]);
function buildRangeInput($scope) {
$scope.percentOfMax = InitCalcPercentOfMax($scope);
$scope.changeValue = function() {
var percentOfMax = $scope.percentOfMax;
$scope.percentOfMax = calcPercentOfMax(percentOfMax);
}
}
})();
有一個功能,而不是這裏和大家分享花費$範圍,從一個複雜的對象建立最初的數據結構。這裏沒有顯示。 InitCalcPercentOfMax已經過測試並按計劃運行。它是外部的,並且由於代碼重用而單獨調用。
其他函數calcPercentOfMax(percentOfMax)用於重新計算已經拉出的某些指令(用於故障排除)中使用的公式。
總之地方我一定有什麼作用或張貼錯了,我只是沒有看到它。
我有console.log([一些表達式])全部,看看數據是不正確的或曾經空白,但percentOfMax.current值總是至少有一個0,所以我仍然不看看我從哪裏得到一個空白。
控制檯沒有錯誤。如果我輸入<span>{{percentOfMax.current}}</span>
,我會在第一次加載時得到正確的值。
的價值是存在的模型,它是在輸入框中只是空白。
我想這是所有的細節,如果我錯過了一些東西,我會嘗試儘快與編輯回覆。
基於在角度聊天室的討論,我做了以下更改。
var d = $q.defer();
var p = d.promise;
//If I leave this off, it never resolves. So there is nothing in the directive to trigger resolve.
d.resolve(function() {
return InitCalcPercentOfMax($scope);
}())
$scope.percentOfMax = p.then(function (POM) {
$scope.percentOfMax = POM;
});
我還加了<span>{{percentOfMax}}</span>
回到了我的觀點。我可以看到承諾開火,我可以看到預期數據在我的precentOfMax中,但輸入框仍爲空。
有人問之前,我使用的版本1.2.14 Angular.js從的NuGet
嘗試: '的setTimeout(函數(){ d.resolve(函數(){// 返回InitCalcPercentOfMax($範圍); }) },2000); $ scope.percentOfMax = p.then(函數(){ //$scope.percentOfMax = POM; $ scope.percentOfMax = InitCalcPercentOfMax($範圍); $ scope.percentOfMax = calcPercentOfMax($ scope.percentOfMax) ; });' 沒有影響 – Brian