2015-11-02 135 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