angular 组件中的参考表单没有范围
reference form in angular component without scope
目前我有这个组件定义:
var controller = ['$http', '$timeout', '$scope', function($http, $timeout, $scope) {
this.isInvalid = function() {
return $scope.changePinForm.$invalid;
};
}];
var component = {
templateUrl: path.fromRoot('/application/libs/components/pin-change/view/pin-change.html'),
controller: controller,
controllerAs: 'vm'
};
angular.module('pin-change', ['confirm-reject', 'compare-validator', 'is-numeric'])
.component('pinChange', component);
});
通过 templateUrl
引用此 html 文件:
<form name="changePinForm" class="form-horizontal">
<!-- etc. etc. -->
</form>
目前我不得不使用范围来引用表单:
$scope.changePinForm.$invalid;
我宁愿避免作用域并从组件的控制器中引用表单。
这是可能的还是范围仍然是唯一的方法?
您可以将表单名称设为 name="vm.changePinForm"
使用 vm
(控制器别名)。
然后您可以轻松地访问您控制器中的 vm.changePinForm.$invalid
。通过它,您不依赖于控制器内部的 $scope
。
var controller = ['$http', '$timeout',
function($http, $timeout) {
var vm = this;
vm.isInvalid = function() {
return vm.changePinForm.$invalid;
};
}
];
目前我有这个组件定义:
var controller = ['$http', '$timeout', '$scope', function($http, $timeout, $scope) {
this.isInvalid = function() {
return $scope.changePinForm.$invalid;
};
}];
var component = {
templateUrl: path.fromRoot('/application/libs/components/pin-change/view/pin-change.html'),
controller: controller,
controllerAs: 'vm'
};
angular.module('pin-change', ['confirm-reject', 'compare-validator', 'is-numeric'])
.component('pinChange', component);
});
通过 templateUrl
引用此 html 文件:
<form name="changePinForm" class="form-horizontal">
<!-- etc. etc. -->
</form>
目前我不得不使用范围来引用表单:
$scope.changePinForm.$invalid;
我宁愿避免作用域并从组件的控制器中引用表单。
这是可能的还是范围仍然是唯一的方法?
您可以将表单名称设为 name="vm.changePinForm"
使用 vm
(控制器别名)。
然后您可以轻松地访问您控制器中的 vm.changePinForm.$invalid
。通过它,您不依赖于控制器内部的 $scope
。
var controller = ['$http', '$timeout',
function($http, $timeout) {
var vm = this;
vm.isInvalid = function() {
return vm.changePinForm.$invalid;
};
}
];