2015-11-02 134 views
0

我已經在服務器端(.NET剃刀),其規定了谷歌地圖默認半徑縮放texbox用戶可以修改:角度:通過從服務器端的默認值

<input type="number" ng-model="radius"> 

而且對於第一負載,我應該有一個服務器定義的(和管理)可變

<input type="number" ng-model="defaultRadius" 
     style="display: none;" value="@myDefault"> 

下面是代碼(JS FIDDLE

var myApp = angular.module('myApp', []); 
 

 
function MyCtrl($scope) { 
 
    $scope.name = 'Superhero'; 
 
    $scope.$watch('defaultRadius', function(newValue) { 
 
    $scope.radius = newValue; 
 
    }, true); 
 
}
<div ng-controller="MyCtrl">Hello, {{name}}! 
 
    <h2>Enter your radius (default {{defaultRadius}}): </h2> 
 
    <input type="number" ng-model="radius"> 
 
    <input type="number" ng-model="defaultRadius" 
 
     style="display: none;" value="200"> 
 
</div>

但是,這似乎並沒有工作......如何解決它?

回答

1

以角度方式,您應該在控制器中定義模型,而不是在視圖中。 所以你需要在你的控制器

$scope.defaultRadius = 200'; 

創建一個變量,或有其它絕招做到這一點:ng-init="defaultRadius=200"

<input type="number" ng-model="defaultRadius" style="display: none;" ng-init="defaultRadius=200" > 

Working Fiddle

+0

我不能從一個值傳遞服務器到一個JavaScript文件 – Serge

+1

比你可以使用ng-init =「defaultRadius = 200」這將工作 –

+0

這是一個好主意!你能用這句話來填寫你的答案,我可以把它標記爲答案嗎? ;)因爲你的評論是答案,而不是答案本身;) – Serge