我们正试图让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一起使用的唯一推荐方法吗?
由于
答案 0 :(得分:1)
这种代码需要在指令中。你不应该在控制器中使用jQuery。
当您尝试在$apply()
之外初始化插件时,您也没有考虑任何渲染时间。当您运行插件代码时,$("#mdsubscriptionMenu")
可能仍然是空的。
查看用于呈现菜单的视图html会有所帮助。
您可以使用$last
的{{1}}属性来触发菜单插件初始化