角度文本框默认值

时间:2016-10-13 06:36:22

标签: angularjs

抱歉我的英文

我想为Create / Edit数据

重复使用同一页面

但需要初始化字段的默认值为null / undefined

我不想在控制器中检查字段是否为空

scope.user = {};
$scope.user.status = $scope.user.status || "some init value";

但我尝试了ng-init没有运气



<!DOCTYPE html>
<html>

  <head>
    <script data-require="angularjs@1.5.8" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
    
    <script>
      angular
        .module('testDefaultValue', [])
        .controller('testCtrl', ['$scope', function($scope) {
          $scope.newUser = {}; 
          $scope.existingUser = { status: "Locked" };
        }]);
    </script>
  </head>

  <body ng-app="testDefaultValue" ng-controller="testCtrl">
    <label>User Status:</label>
    <input
      type="text"
      ng-model="newUser.status"
      ng-init="newUser.status = 'Active' "
    />
    <br />
    Should be: Active
    <br />
    <br />
    
    <label>User Status:</label>
    <input
      type="text"
      ng-model="existingUser.status"
      ng-init="existingUser.status = 'Active' "
    />
    <br />
    Should be: Locked
    <br />
    
  </body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

最好在控制器中初始化值。在编辑时使用服务器中的用户模型,或者在创建时使用带有默认值的模型...并在控制器中执行,而不是在html中执行。

答案 1 :(得分:0)

只需在JavaScript代码中将ng-model中使用的变量设置为“Active”即可。

this.newUser.status = 'Active';
this.existingUser.status = 'Active';