为了账号安全,请及时绑定邮箱和手机立即绑定

默认值的Angular js init ng-model

默认值的Angular js init ng-model

慕后森 2019-10-15 14:10:33
假设您有一个具有从数据库加载的值的表单。您如何初始化ng-model?例:<input name="card[description]" ng-model="card.description" value="Visa-4242">在我的控制器中,$ scope.card最初是未定义的。除了做这样的事情,还有别的办法吗?$scope.card = {  description: $('myinput').val()}
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

这是新的Angular应用程序中的常见错误。如果可以避免,您不想将值写入服务器上的HTML。如果确实如此,如果您可以摆脱让服务器完全呈现HTML的局面,那就更好了。


理想情况下,您要发送Angular HTML模板,然后通过JSON中的$ http下拉值并将其放在您的范围内。


因此,请尽可能执行以下操作:


app.controller('MyController', function($scope, $http) {

    $http.get('/getCardInfo.php', function(data) {

       $scope.card = data;

    });

});


<input type="text" ng-model="card.description" />

如果绝对必须从服务器将值呈现到HTML中,则可以将它们放在全局变量中,并使用$ window访问它们:


在页面标题中,您应该写出:


<head>

   <script>

       window.card = { description: 'foo' };

   </script>

</head>

然后,在您的控制器中,您将像这样:


app.controller('MyController', function($scope, $window) {

   $scope.card = $window.card;

});

希望对您有所帮助。


查看完整回答
反对 回复 2019-10-15
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

如果您无法重做应用程序以执行@blesh的建议(使用$ http或$ resource下拉JSON数据并填充$ scope),则可以使用ng-init代替:


<input name="card[description]" ng-model="card.description" ng-init="card.description='Visa-4242'">


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 895 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信