2017-05-29 38 views
0

我正在使用HTML5範圍滑塊來設置值(狀態)並將其發送到數據庫。我現在遇到的問題是,當我重新加載頁面滑塊時,它的值始終設置爲'50'。滑塊是在angularjs的ng-repeat內部生成的。當我更改數據庫中的值時,我發現滑塊的「值」正在改變,但是沒有發生任何反應...值更改範圍滑塊HTML5和ng-repeat AngularJs

有人可以幫我解決這個問題嗎? 在此先感謝...

<h3 style="text-align: center">{{dim1}}</h3> 
<input ng-model="dim1" ng-touchend="dim_switch(node, dim1)" ng-mouseup="dim_switch(node, dim1)" id="dimslider" value="{{parseInt(node.status)}}" type="range" step="1" min="0" max="100"> 
+0

使用localStorage設置值並在重載應用程序時取回相同的值 –

+0

parseInt()不會在角度表達式中計算,將它移動到某個控制器方法並從UI調用方法。 – anoop

+0

@anoop - 從ngChange調用它?試過這種方法,但它給了我錯誤,並多次調用函數,即使沒有變化... –

回答

1

由於ng-repeat創建一個新的子範圍。(doc.)。

因此你的$soppe.dim1得到由新的子範圍overidden。所以用分層模型包裝你的屬性來利用JavaScript原型繼承,並堅持你的$ scope屬性。

like $scope.slider = {dim1 : ''}並在HTML中使用它:{{slider.dim1}}

更多parseInt()將不會評估角度表達式,將它移動到一些控制器方法。

喜歡:ng-value="someMethod(node.status)"和來自控制器方法return parseInt(statusParam)

+0

我想我明白你的意思,但我有很多元素在我的ng重複... + parseInt我通過在我的數據庫中使用int值而不是字符串了... –

+0

@AlexLogist:然後在'ng-repeat' dataArray中添加一些'sliderValue'變量,如'ng-repeat ='dataArray中的數據「'和html'{{data.sliderValue}}'。 – anoop

+0

仍然沒有更新Gui –

0

似乎HTML5範圍滑塊不使用「value」屬性 - >問題與給定溶液的組合,解決了!