我有一个select2指令,用于多个国家/地区的自定义查询以获取数据:
// Directive
<input ng-model="filters.countries" ui-select2="filters.countryOptions"
data-placeholder="Choose a country...">
// filters.countryOptions
{
multiple: true,
query: function() {
get_list_of_countries();
}
}
// Formatted data from remote source
[
{id: 'US', text: 'United States'},
{id: 'CA', text: 'Canada'} ...
]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下方法在控制器中设置最初选择的值:
$scope.filters.countries = [{id: 'US', text: 'United States'}];
Run Code Online (Sandbox Code Playgroud)
这确实正确地设置了模型,但这是在select2初始化发生之前发生的.当我逐步执行剩余的初始化代码时,输入会[Object]在最终消隐$scope.filters.countries和输入之前暂时显示,但它不会在输入中显示占位符文本.
为了解决这个问题,我使用以下方法重置模型的初始值:
$scope.$on('$viewContentLoaded', function() {
setTimeout(function() {
$scope.filters.countries = [{id: 'US', text: 'United States'}];
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
使用a似乎非常hackish setTimeout.有没有更好的方法让我失踪?
根据ProLoser的要求,这里有一个demo和github票.
演示:http://plnkr.co/edit/DgpGyegQxVm7zH1dZIJZ?p = preview
GitHub问题:https …
在我目前的用例中,我试图使用angular-ui模态窗口来显示我们在后台进程中执行的计算进度,我们在完成时禁用它.
一切顺利.我只是想禁止用户点击后台的任何元素.
知道我们怎么能这样做?
如何在不使用查询字符串且仅使用一个路由名称的情况下允许可选参数到路由中?我目前正在指定每个路线五次以允许任何部件组合:
所有部件必须是可选的.路线必须解决任何变化.
.state("login", { url: "/login", templateUrl: "login.html", params: { a: null, b: null, c: null, d: null } })
.state("loginA", { url: "/login/:a", templateUrl: "login.html", params: { b: null, c: null, d: null } })
.state("loginAB", { url: "/login/:a/:b", templateUrl: "login.html", params: { c: null, d: null } })
.state("loginABC", { url: "/login/:a/:b/:c", templateUrl: "login.html", params: { d: null } })
.state("loginABCD", { url: "/login/:a/:b/:c/:d", templateUrl: "login.html" })
Run Code Online (Sandbox Code Playgroud)
必须有一个更容易/更清洁/更少丑陋的方式.
我有处理模态的角度服务:
angular.module('myApp').service('ModalService', function($uibModal) {
function open(options) {
return $uibModal.open(options);
}
});
Run Code Online (Sandbox Code Playgroud)
现在我升级到角度1.6并得到此错误:
可能是未处理的拒绝:背景点击
每当我打开一个模态并单击其他地方(背景)并且模态关闭(按预期).所以我想unhandled exception在我处理这个,ModalService因为我不想每次使用时都处理这种情况ModalService.通过背景点击关闭模态总是可以的,这也不例外.
我试过了:
angular.module('myApp').service('ModalService', function($uibModal) {
function open(options) {
var modalInstance = $uibModal.open(options);
modalInstance.result.catch(function error(error) {
if(error === "backdrop click") {
// do nothing
} else {
throw error;
}
})
return modalInstance;
}
});
Run Code Online (Sandbox Code Playgroud)
但这会导致我无法处理其他错误的问题,而不是backdrop click总是抛出它们:
ModalService.open({...}).result.catch(function(error) {
// this will catch the error too, but the throw in the ModalService
// will occure in parallel and will …Run Code Online (Sandbox Code Playgroud) javascript error-handling angularjs angular-ui angular-ui-bootstrap
Angular UI Bootstrap对话框易于实现,但难以自定义.
你到底怎么改变宽度?甚至最大宽度?
http://angular-ui.github.com/bootstrap/#/dialog
我尝试过$dialog.dialog({width:600})和其他变化,但没有快乐.
我想在AngularJS中使用Bootstrap Multiselect Dropdown http://davidstutz.github.io/bootstrap-multiselect/.我听说有必要将其移至指令.但我认为这很复杂,不知道我该做什么.如果您有经验,请指导我!韩国社交协会.
我有一个项目,它是在plain angular.js代码上构建的.我们用茉莉花创造单元测试.但是现在我们需要获取一些第三方组件(来自Angular-Bootstrap的一些指令),这里面也是纯粹的angular.js,但是为了测试那些组件,使用了一些jQuery代码和方法调用.现在很多第三方测试失败了,例如类似的
[object] had no method 'trigger'东西
所以我的问题是如何将jquery包含在我的测试中,以使第三方unitests有效.我用Karma进行测试.
我在角度js中做了一个指令,限制它作为一个类,这个指令使我的元素可以拖动.
在mousehover上我想做addClass并添加这个应该是类的指令,但这并没有给出想要的结果,我错过了什么?以下是我正在做的事情
module.directive('myDraggable', function ($document) {
var directiveObject= {
restrict:'AC',
//logic of dragging
}
return directiveObject;
});
Run Code Online (Sandbox Code Playgroud)
我试着去做
element.addClass('myDraggable'); // but this fails! pls help
Run Code Online (Sandbox Code Playgroud) 我打算在打开时将一些模型数据传递到模态窗口.当用户点击一个元素时,我想让模态窗口打开,并显示与点击内容有关的更多详细信息.
除了将数据传递到模态窗口之外,我已经创建了一个按照我想要的方式工作的plunker.
我试图使用ng-click传递数据:
<img ng-src="{{item.picture}}" width="100" ng-click="open(item)"/>
Run Code Online (Sandbox Code Playgroud)
谁能帮我这个?还是指出我正确的方向?