.open(options)
打开对话窗口,在每次调用时创建新的对话框实例。接受对象作为唯一的参数。
参数选项Options:
template {String}
对话框模板可以通过所给路径加载外部html模板或type=”text/ng-template”的script标签。
<script type="text/ng-template" id="templateId">
<h1>Template heading</h1>
<p>Content goes here</p>
</script>
ngDialog.open({ template: 'templateId' });
当然,还可以使用简单的字符串作为模板和plain选项。
tips:
并不一定要将外部html模板放在script标签中。可以将模板放在
$templateCache中:
angular.module('dialog.templates').run(['$templateCache', function($templateCache) {
$templateCache.put('templateId', 'template content');
}]);
然后可以将dialog.templates模块包含在主模块的依赖项中,并开始使用该模板作为templateId:
无需手动执行这些操作,可以使用插件。 它们可用于不同的构建系统,包括最受欢迎的Gulp / Grunt:
gulp-angular-templatecache
gulp-ng-html2js
grunt-html2js
broccoli-html2js
plain {Boolean}
默认为false,如果为true则允许使用纯字符串作为模板。
ngDialog.open({
template: '<p>my template</p>',
plain: true
});
controller {String} | {Array} | {Object}
controller是对话窗口的控制器。 控制器可以通过名称引用或直接内联来指定。
ngDialog.open({
template: 'externalTemplate.html',
controller: 'SomeController'
});
//或者
ngDialog.open({
template: 'externalTemplate.html',
controller: ['$scope', 'otherService', function($scope,
otherService) {
// controller logic
}]
});
controllerAs {String}
可以选择为控制器指定controllerAs参数。 然后在你的模板里面,可以把这个控制器引用给controllerAs指定的值。
AngularJS团队目前推荐使用controllerAs语法。
resolve {Object.<String, Function>}
(可选)给控制器注入依赖关系映射。 如果这些依赖关系中的任何一个都是promises【这里的promise不知道怎么翻】,ngDialog将等待所有这些依赖关系解决,或者一个被拒绝,然后才能实例化控制器。
如果所有的promises都成功解决了,解决的promises值就会被注入。
映射对象如下:
key – {String}: 要注入控制器的依赖项的名称。
factory - {String | Function}:如果是String类型,那么它是一个服务的别名。如果是Function,那么它将使用$ injector.invoke进行注入,返回依赖关系。如果返回的是一个promises,则在将其值注入到控制器之前解决。
ngDialog.open({
controller: function Ctrl(dep) {/*...*/},
resolve: {
dep: function depFactory() {
return 'dep value';
}
}
});
scope