弹出式重绘中的AngularJS自定义指令

时间:2013-08-26 17:22:05

标签: javascript jquery twitter-bootstrap angularjs

我有一个按钮,可以使用自定义指令触发弹出窗口。 问题是,在按钮单击时,弹出窗口是空的,当我强制角度循环(在输入字段中更改数据等)时,自定义指令的内容才会启动 一旦发生这种情况,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自定义指令适用于应用程序的其他区域。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

$timeout(function () {
    $scope.apiresource = {
        list: resource.query()
    };
});