AngularJS模态窗口数据/对象流
AngularJS modal window data/object flow
我创建了一个小演示,当我需要在 Angular 中打开模态窗口时使用。使用指令作为模式窗口模板。
我不确定的是我将数据/函数传递给模态的方式。
开口控制器:
$scope.openModal = function($event){
$scope.items = [1,2,3,4,5];
$scope.modalInstance = $modal.open({
template: '<modalwindow></modalwindow>',
scope:$scope,
test:'akex'
});
$scope.modalInstance.result.then(function (selectedItem) {
console.info(selectedItem);
}, function () {
console.info('Modal dismissed at: ' + new Date());
});
和模态指令:
angular.module('angModalApp')
.directive('modalwindow', function () {
return {
templateUrl: 'scripts/directives/modalwindow.tmpl.html',
restrict: 'E',
link: function postLink(scope, element, attrs) {
scope.ok = function () {
scope.modalInstance.close(["a","b","c"]);
};
scope.cancel = function () {
scope.modalInstance.dismiss('cancel');
};
}
};
});
我要问的是你们对模态的这种使用有何看法。有没有更好的方法?
谢谢你的时间。
该项目的来源可以在以下位置找到: https://github.com/trostik/angular-modal-window-demo
我建议您使用Angular-UI/bootstrap:http://angular-ui.github.io/bootstrap/
它易于实现且稳定。
将数据
传递到此类指令的最佳方法通常是通过隔离作用域。
取自 http://docs.angularjs.org/guide/directive:
<!doctype html>
<html ng-app="docsIsolateScopeDirective">
<head>
<script src="http://code.angularjs.org/1.2.0-rc.3/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<my-customer customer="naomi"></my-customer>
<hr>
<my-customer customer="igor"></my-customer>
</div>
</body>
</html>
请注意他们如何使用指令 myCustomer 上的自定义属性从控制器 Ctrl 的作用域传入数据。
要访问此数据,指令定义应使用 scope 选项:
.directive('myCustomer', function() {
return {
restrict: 'E',
scope: {
customer: '=customer'
},
templateUrl: 'my-customer.html'
};
});
您可以看到如何在范围内指定客户。值 = customer 告诉 Angular 在指定为属性的数据与指令的隔离作用域(定义为 customer)的属性之间创建双向数据绑定。您也可以只指定 = 以获得更短的方法,在这种情况下,它将在指令的作用域上创建与属性名称相同的引用。如果需要传入数据不应在指令内更改,则应使用@ 符号而不是 =,如果需要传入函数,则应使用 & 符号。
相关文章:
- 将嵌套对象数据添加到窗体中
- 使用javascript更改嵌套对象数据
- 如何将状态对象/数据传递给(异步)ajax 回调
- 如何使用HTML5中的sessionStorage概念在Javascript中打印对象数据
- 如何在express中使用socket.io发布多个对象数据
- 如何在 Javascript 中将函数绑定到对象数据成员的更改
- 在$.ajax调用中将附加数据添加到jQuery包装的对象数据中
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- JavaScript对象数据和数组
- 访问主数组内的数组中的对象数据
- 角度.js从NG重复更新对象数据
- HTML 对象数据文件(如果未找到)
- 设置对象数据结构数组属性
- Ajax 请求不发送我的对象数据
- 获取对象数据的浅拷贝的最快方法是什么
- 如何访问对象的键值?希望从对象数据填充表
- JSON.parse 似乎不解析对象数据
- 在 android WebView 中的 java 和 javascript 之间共享对象(数据)
- 选择 JSON 对象数据表元素以列出其所有元素
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调