Har*_*rry 13 javascript twitter-bootstrap angularjs angular-ui angular-ui-bootstrap
我曾经有一个使用bootstrap模式的登录对话框:
$scope.loginDialog = {
backdrop: true,
keyboard: true,
windowClass: "modal loginDialog",
backdropClick: true,
templateUrl: '/tmpl/user/loginForm',
controller: function dialogController($scope, $modalInstance) {
$scope.submit = function () {
$http.post('/api/login', $scope.user).success(...);
}
}
};
Run Code Online (Sandbox Code Playgroud)
登录表单如下所示:
form#loginBox(ng-submit="submit()")
.modal-body.login-box
.formItem
label(for='user[usernameOrEmail]') Name or Email:
input(type='text', name='user[usernameOrEmail]', required="required", value='', ng-model="user.user")
.formItem
label(for='user[password]') Password:
input(name='user[password]', type='password', value='', required="required", ng-model="user.password")
.modal-footer
input.btn.btn-primary( type="submit", value="Login")
Run Code Online (Sandbox Code Playgroud)
在角度ui 0.4和angularjs 1.1.3中,这很好.
我已经更新到最新的角度ui 0.6和1.2rc2,现在这已经不再适用了.具体$scope.user
不再与表格中的那个相同.如何获取表单元素的$ scope?我在batarang中看到它,但不是来自loginDialog控制器.
谢谢
mor*_*man 27
您resolve
在打开的模型对象上缺少该属性.这是将本地传递给模态控制器的新方法.
从ui-bootstrap文档:
resolve - 将被解析并作为本地人传递给控制器的成员; 它等同于AngularJS路由的resolve属性
更新的代码和工作的plunker
angular.module('plunker', ['ui.bootstrap']);
var ModalDemoCtrl = function ($scope, $modal, $log) {
$scope.user = {
user: 'name',
password: null
};
$scope.open = function () {
$modal.open({
templateUrl: 'myModalContent.html',
backdrop: true,
windowClass: 'modal',
controller: function ($scope, $modalInstance, $log, user) {
$scope.user = user;
$scope.submit = function () {
$log.log('Submiting user info.');
$log.log(user);
$modalInstance.dismiss('cancel');
}
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
},
resolve: {
user: function () {
return $scope.user;
}
}
});
};
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
54202 次 |
最近记录: |