我有一个按钮,可以使用自定义指令触发弹出窗口。 问题是,在按钮单击时,弹出窗口是空的,当我强制角度循环(在输入字段中更改数据等)时,自定义指令的内容才会启动 一旦发生这种情况,popover会按照预期重新绘制自定义指令。
如何在弹出窗口打开时执行自定义指令?
一些代码:
按钮 - <button type="button" class="btn btn-primary btn-small" bs-popover="'partials/test.html'"><i class="icon-white icon-plus"></i></button>
partials / test.html - <itemlist apicall="'attributes'" editable="'false'" selectable="'true'" viewtype="'attributes'" template="partials/itemlist.html"></itemlist>
(itemlist是自定义指令)
itemlist指令 -
.directive('itemlist', function () {
return {
restrict: 'AE',
scope: { apicall: '=', editable: '=', viewtype: '=', selectable: '=' },
controller: function ($scope, $http, $resource, $timeout, fileReader, apiaddress, $dialog, errormsg) {
var resource = $resource(apiaddress + $scope.apicall, {}, { update: { method: 'PUT', params: { id: '@Id' } } });
$scope.apiresource = { list: resource.query() };
//TODO: See how to only display one.
toastr.info("Loading...");
},
templateUrl: function (tElement, tAttrs) { return tAttrs.template },
replace: true
};
})
还有一件事 - itemlist
自定义指令适用于应用程序的其他区域。
谢谢!
答案 0 :(得分:0)
由于资源是异步检索数据,因此resource.query()不保证同步返回数据。您可以尝试将行更改为
$timeout(function () {
$scope.apiresource = {
list: resource.query()
};
});