在AngularJS中使用JqueryUI菜单

时间:2015-07-17 19:03:06

标签: javascript jquery angularjs jquery-ui

我们正试图让JqueryUI菜单在我们的AngularJS应用程序中运行。 在我们的Layout.js中,我们正在执行以下操作:

OURApp.controller('leftBarCtrl', ['$scope', function ($scope) {
    $scope.init = function () {
        $.ajax({
            url: "../Data/MainPageData",
            type: "GET",
            dataType: "Json",
            data: {},
            success: function (data) {
                if (data.Acknowledgment) {
                    $scope.$apply(function () {
                        $scope.subscriptionsModel = data.userSubscriptionsReponse.UserSubscriptionsObjects;
                        $scope.CompanyModel = data.userResponse.CompanyInformation;
                    })
                    $("#mdsubscriptionMenu").menu({
                        menus: "ul",
                        items: "li"
                    });

                }
               .......

但它似乎不起作用。 我读到将menu()调用移动到一个有角度的" .directive"仅限于' A'应该做的伎俩。这是使JqueryUI组件与AngularJS一起使用的唯一推荐方法吗?

由于

1 个答案:

答案 0 :(得分:1)

这种代码需要在指令中。你不应该在控制器中使用jQuery。

当您尝试在$apply()之外初始化插件时,您也没有考虑任何渲染时间。当您运行插件代码时,$("#mdsubscriptionMenu")可能仍然是空的。

查看用于呈现菜单的视图html会有所帮助。

您可以使用$last的{​​{1}}属性来触发菜单插件初始化