Мы пытаемся заставить 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?
благодаря
Этот тип кода должен быть в директиве. У вас не должно быть jQuery в контроллере.
Также вы не учитываете время рендеринга при попытке инициализировать плагин вне $apply()
. Когда вы запускаете код плагина, теперь $("#mdsubscriptionMenu")
, вероятно, все еще пуст.
Это поможет увидеть вид html, который вы используете для визуализации меню.
Вы можете использовать $last
свойство ng-repeat
для запуска инициализации плагина меню
$http
вместо$.ajax
чтобы избавиться от беспокойства при запуске циклаdigest