2016-07-22 5 views
1

페이지에서 컨트롤러의 변수를 사용합니다. 예 :이온수 + 숫자가있는 변수는 항상 '올바른 숫자가 아닙니다.'

<label class="item item-input item-stacked-label"> 
    <span class="input-label">Projekt Id:</span> 
    <input type="number" placeholder="0" value="{{cpc.projektid}}" disabled> 
</label> 

컨트롤러는 공장에서 계산을 수행하며 SQLite 데이터베이스에서 일부 데이터를 가져옵니다. 내가 컨트롤러 또는 공장 내 변수의 유형을 선택하면, 내가 예를 들어 얻을 :

console.log(typeof cpcVm.projektid); => number 
console.log(angular.isNumber(cpcVm.projektid)); 0> true 

그래서 나를 위해,이 변수의 값이 숫자임을 의미!?

지정된 값 "{{cpc.projektid}}"유효한 숫자되지 않습니다 :

는하지만 항상 경고를 얻을. ? (? [EE] [- +] \ D +)?를 들어 "

(.. | | \ D + \ D + \ D + \ D +) - 다음 값은 다음 정규 표현식에 일치해야합니다 projektid이 큰 문제가되지 않지만 좀 더 복잡한 계산을 가지고, 나는 또한 번호가 숫자 인 경우에만 작동 몇 가지 필터를 설정할 필요는 예를 들면 다음과 같습니다.

<input type="number" placeholder="0" value="{{cpc.luftmenge | number:2}}" disabled> 

나는 추가를 제공하기 위해 이미 시도 parseFloat() 내 컨트롤러 및 공장 있지만 변경 사항이 있습니다. 컨트롤러 및 팩토리, 그것은 숫자가 있지만 HTML에서 오류를 만들고 필터를 사용할 수 없습니다.

또 다른 이상한 점 : 공장 또는 컨트롤러의 변수 값을 수동으로 설정하면 (예 : 12를 반환하는 경우) 작동합니다.

아이디어가 있으십니까?

답변

3

value 속성 대신 ng-value="cpc.projektid"을 사용하십시오.

각도가 페이지에로드되지 않을 때 value 속성에 표시되는 브라우저는 {{cpc.projektid}}이며 그 이유는 불만입니다. ng-valuevalue 특성이식이 제대로 컴파일 된 후에 추가되어야합니다.

var app = angular.module("sa", []); 
 

 
app.controller("FooController", function($scope) { 
 

 
    $scope.projektid = "2" 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="sa" ng-controller="FooController"> 
 
    Projekt Id: 
 
    <input type="number" placeholder="0" ng-value="projektid" disabled> 
 
</div>

+0

감사합니다! 이것은 내 문제를 해결했다. 내가 수동적 가치를 부여했을 때 그것이 왜 효과가 있었는지 나는 이해하지 못한다. 어쩌면 계산에서 다른 변수를 사용했기 때문일 수 있습니까? 내 전체 코드를 ng-value = ""로 변경하고 parseFloat() 항목을 제거했습니다. 내 테스트에서 모든 것이 작동하는 것 같습니다 ... – cjs1976

+0

다행이 효과가! 내가 'value = "{{}}"를 사용했을 때 응답에서 언급했듯이, Angular가 초기화되지 않을 때까지'value '가'{{cpc.projektid}}'로 표시되는 초 또는 수 밀리 초일 수도 있습니다. DOM에서. Angular가 작동하면서 이제 브라우저는'{{cpc.projektid}} '표현식이 평가 된 후에 실제 값을 얻습니다. 'src'와'ng-src' 속성도 같습니다. –

+0

아, 잘 알고 있습니다. 다시 한 번 감사드립니다! – cjs1976

관련 문제