Angular:从服务器端传递默认值

时间:2015-11-02 11:21:10

标签: javascript angularjs

我在服务器端(.NET Razor)有一个texbox,它指定了用户可以修改的谷歌地图缩放的默认半径:

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

但是对于第一次加载,我应该有一个服务器定义的(和托管的)变量

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

以下是代码(JS FIDDLE

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

function MyCtrl($scope) {
  $scope.name = 'Superhero';
  $scope.$watch('defaultRadius', function(newValue) {
    $scope.radius = newValue;
  }, true);
}
&#13;
<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>
&#13;
&#13;
&#13;

然而,这似乎不起作用......如何解决?

1 个答案:

答案 0 :(得分:1)

以Angular方式,您应该在控制器中定义模型,而不是在视图中。 所以你需要在你的控制器中创建一个变量

 $scope.defaultRadius = 200';

或者还有另一种方法可以使用:ng-init="defaultRadius=200"

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

<强> Working Fiddle