我在服务器端(.NET Razor)有一个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);
}
&#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;
然而,这似乎不起作用......如何解决?
答案 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 强>