Javascript 有没有办法更有效地编写这些角度绑定?

Javascript 有没有办法更有效地编写这些角度绑定?,javascript,angularjs,forms,validation,Javascript,Angularjs,Forms,Validation,我在AngularJS1.2.6应用程序的视图中嵌入了一个表单 <div class="container" ng-controller="LoginCtrl as signin"> <div class="row"> <div class="col-md-4"> <form name="signin.myForm" novalidate autocomplete="off"> <h1>Sign In</h1&g

我在AngularJS1.2.6应用程序的视图中嵌入了一个表单

<div class="container" ng-controller="LoginCtrl as signin">
 <div class="row">
  <div class="col-md-4">
  <form name="signin.myForm" novalidate autocomplete="off">
    <h1>Sign In</h1>
    <div class="form-group" ng-class="{'has-error': (signin.myForm.name.$error.required || signin.myForm.name.$error.minlength) && signin.myForm.name.$dirty}">
      <label>Name</label>
      <input class="form-control" type="text" name="name" ng-model="signin.myForm.data.name" required ng-minlength="3">
      <span class="help-block" ng-show="signin.myForm.name.$error.required && signin.myForm.name.$dirty" >Name is required.</span>
      <span class="help-block" ng-show="signin.myForm.name.$error.minlength && signin.myForm.name.$dirty" >Must be at least 3 characters.</span>
    </div>      
    <button class="btn btn-primary" ng-disabled="!signin.myForm.$valid" ng-click="signin.submit()">Sign in</button>
  </form>
</div>
如您所见,为了使表单字段的数据与signin属于同一范围,我被教导首先将ng controller=LoginCtrl作为signin,然后使用复杂的模型和属性名称,如signin.myForm.name.$error.required


这是正确的方法吗?这似乎有效,但尽管我是一个傻瓜,但这对我来说似乎有点纠结。这真的是最佳实践吗?

我认为更常见的情况是这样的,将东西附加到注入的$scope而不是这个,然后不必在HTML中的引用上放置名称空间限定符

登录 名称 名称是必需的。 必须至少包含3个字符。 登录
您可以更新到1.3并使用;。我希望如此。仍然需要支持IE8。这当然有帮助。这里的另一位开发人员告诉我,使用名称空间是一种更新、更好的做法。这仅仅是一种风格上的东西,还是与此相关的东西?请看文档中的指南。您将找不到有关使用命名空间别名的任何信息:。即使在他们的嵌套作用域示例中(这是我唯一一次认为名称空间可能有用),他们也不使用名称空间。我认为,随着您对$scope概念的进一步了解,仅仅依赖注入的$scope也同样简单。我希望有人能给我一个很好的理由,不过,我喜欢学习新东西。
 app.controller('LoginCtrl', ['$log',function($log){
 var ctrl = this;

 ctrl.submit = function(){
 console.log(ctrl.myForm);

 if(ctrl.myForm.$valid){
   console.log('the form is valid');
   }
  };
}]);