AngularJS V1.4.7 директива templateUrl динамический путь

0

У меня проблема с templateUrl: частью угловых указаний. Я пытаюсь установить динамический путь, но он не работает, и я не могу понять это. Я проверил синтаксис, и все, похоже, проверяется, он просто не вытаскивает шаблон из этого URL-адреса.

Вот мой код директивы:

var app = angular.module('docMan', ['ui.sortable']);

//global variable

app.run(['$rootScope','getResourceURL', function($rootScope, getResourceURL){

	getResourceURL('FOPS_Resource').then(function(result){$rootScope.FOPSbaseURL = result;
	},
						function(error){$scope.error = result;})

	
}]);

//Handle to grab SF info about the Static Resource base URL
app.factory('getResourceURL', ['$q','$rootScope', function($q, $rootScope){

		return function (inputString) {

			var deferred = $q.defer();

			Visualforce.remoting.Manager.invokeAction(
				'FO_Manager.GetResourceURL', 
				inputString,
				function(result, event){
					$rootScope.$apply(function(){
					if(event.status) {
						deferred.resolve(result);
					} else {
						deferred.reject(event);
					}
				})
			},
			{buffer: true, escape: true, timeout: 30000}
		);
		return deferred.promise;
	}
}]);

app.directive('sideNav', function($rootScope){

	return{

		restrict: 'E',
	    scope: {
	    	info: '='
	    },
	    templateUrl: function($rootScope){ return $rootScope.FOPSbaseURL + '/js/custom/directives/sideNav.html';}

	};
});

Затем, когда я помещаю теги <sideNav info="SideNav"></sideNav> где SideNav находится в области контроллера, окружающего его, ничего не происходит, шаблон не растягивается.

Вот шаблон: '

                    <li class="mainCat">
                        <a href="#" id="CatHeader">
                            <i class="{{item.displayIcon}} left-bar"></i>
                            <span ng-bind-html="item.label | html"></span>
                        </a>
                        <ul class="subCat"> 


                            <li ng-repeat="subItem in item.docTypes">
                                <a href="#" >
                                <i class="fi-folder"></i>
                                <span ng-bind-html="subItem.Name | html"></span>
                                </a>
                            </li>


                        </ul>
                    </li>

'

Любая помощь по этому вопросу была бы весьма признательна.

ОБНОВЛЕНО:

Итак, теперь благодаря помощи ниже что-то отображалось, но теперь проблемы в том, что $rootScope.FopSbaseURL не заполняется должным образом в этом "app.directive" (функция foSidenav, function ($ rootScope) {

return{

    restrict: 'E',
    scope: false,
    templateUrl: function(){ 

        $rootScope.snipSideNav = $rootScope.FOPSbaseURL + '/js/custom/directives/sidenav.html';
        return $rootScope.snipSideNav;


    }
};

}); "это то, что я хочу в rootScope, но он не тянет в шаблонеURL

  • 0
    Видите ли вы, что по крайней мере приложение пытается подключить ваш шаблон с http-запросом или ваша проблема пропускает только $ rootScope?
Теги:
angularjs-scope
angularjs-directive

1 ответ

2
Лучший ответ

Из документации AngularJS:

Угловая нормализует тег элемента и имя атрибута, чтобы определить, какие элементы соответствуют этим директивам. Обычно мы ссылаемся на директивы по их регистровому имени camelCase с учетом регистра (например, ngModel). Однако, поскольку HTML не чувствителен к регистру, мы ссылаемся на директивы в DOM по строчным формам, как правило, используя атрибуты с разделителями тире на элементах DOM (например, ng-model).

Вы должны использовать это:

<side-nav info="SideNav"></side-nav>

Дополнительная информация в https://docs.angularjs.org/guide/directive

  • 0
    извините за это, пытался помочь, но я неправильно прочитал код в первый раз ...
  • 0
    Нет проблем :) Я понял, что это не только имена тегов, это должно быть для любой директивы, используемой в представлении, я редактирую это сейчас. Я оставил SideNav как это было изначально, потому что я не знаю, означает ли это SideNav директивы или это какой-то другой тип ссылки, который он хочет использовать.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню