0

我有一个使用自定义指令触发弹出框的按钮。问题是在按钮单击时弹出框是空的,只有当我强制角循环(更改输入字段中的数据等)时,自定义指令才会启动。一旦发生这种情况,弹出框就会按预期使用自定义指令重新绘制。

我怎样才能使它在弹出窗口打开时执行自定义指令?

一些代码:

按钮 -<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自定义指令适用于应用程序的其他区域。

谢谢!

4

1 回答 1

0

由于资源是异步检索数据,因此 resource.query() 不保证数据是同步返回的。您可以尝试将行更改为

$timeout(function () {
    $scope.apiresource = {
        list: resource.query()
    };
});
于 2013-08-27T04:38:16.353 回答