Angularjs 在中完成布线后无法选择图元
我想验证我的表单,就像。但我也在使用ui路由器,我的表单字段在另一个部分页面中。因此,我无法选择我的表单,如下所示Angularjs 在中完成布线后无法选择图元,angularjs,Angularjs,我想验证我的表单,就像。但我也在使用ui路由器,我的表单字段在另一个部分页面中。因此,我无法选择我的表单,如下所示 if ($scope.userForm.$valid) { alert('our form is amazing'); } 在控制台中,我得到了这个错误。TypeError:无法读取未定义的属性“$valid” 那么我应该怎么做来捕获来自partials的表单字段呢 顺便说一下,这些是我的密码 var app = angular.modul
if ($scope.userForm.$valid) {
alert('our form is amazing');
}
在控制台中,我得到了这个错误。TypeError:无法读取未定义的属性“$valid”
那么我应该怎么做来捕获来自partials的表单字段呢
顺便说一下,这些是我的密码
var app = angular.module("App",['ui.router']);
app.controller("Controller", function($scope){
$scope.Go = function(){
alert($scope.name);
if($scope.userForm.$valid){
alert("Valid");
}
else{
alert("No Valid");
}
}
});
app.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('/', {
url: '/',
templateUrl: 'input.html'
})
})
这是我的index.html
<div ng-controller="Controller">
<ui-view></ui-view></div>
这是我的partial.html
<form name="userForm">
<input type="text" ng-model="name"/>
<button ng-click="Go()">Go</button></form>
基本上,您需要将表单指向父作用域,如$parent.userForm&要访问表单值,请在ui视图的父控制器内初始化表单对象,如$scope.form={}。然后,我们将在其中放置所有表单级别的值 HTML input.html
希望这能帮助你,谢谢。你可以照@pankajparkar说的做。或者您需要修改您的状态:
$stateProvider
.state('/', {
url: '/',
templateUrl: 'input.html',
controller: 'Controller'
});
然后卸下ng控制器=控制器
UI路由器将自动加载给定状态的指定控制器,并将其绑定到input.html。您的表单名称应为frm,而不是输入htmlIn中的userForm我的代码,我已更改表单名称。原因不是表单名。@baasr sen那么请在这里添加您的代码。.我更新了代码@Pankajparkano等等,我没有看到您在ui视图的外部定义了ng控制器。你需要照@pankajparkar说的做,或者移除ng控制器,让UI路由器来处理。是的!这很有效。但是为什么它总是返回无效?@BasarSen那是我的错..plunkr包含错误的代码,请检查更新的plunkr..非常感谢。我很感激。这对我的工作非常重要:@BasarSen很高兴能帮助你。谢谢:
app.controller("Controller", function($scope) {
$scope.form = {};
$scope.Go = function() {
alert($scope.form.name);
if ($scope.userForm.$valid) {
alert("Valid");
} else {
alert("No Valid");
}
}
});
<form name="$parent.userForm">
<input type="text" ng-model="form.name" />
<button ng-click="Go()">Go</button>
</form>
$stateProvider
.state('/', {
url: '/',
templateUrl: 'input.html',
controller: 'Controller'
});