angular.js - 动态修改 directive 的templateUrl 只有在controller中生效,在directive中操作不生效

浏览:139日期:2023-01-03

问题描述

<content url='{{contentUrl}}'></<content>

//在controller中调用changeContentUrl 页面模板可以更换. 但是在下方homeAction点击事件中操作url 不生效var home = angular.module('home', [ 'common' ]);

home.controller('homeCtrl', function($scope, commonFactory) { $scope.contentUrl = 'template/userInfo';$scope.changeContentUrl = function(contentUrl) { console.log(contentUrl); $scope.contentUrl = 'adada'; }; }); home.directive('content', function() {return { restrict : 'E', template : '<p ng-include=’getContentUrl()’></p>', link : function($scope, $element, $attr) {$scope.getContentUrl = function() { return $attr.url;}; }}; });home.directive('homeAction',function(commonFactory){return function($scope,element,attrs){var node = element.find('li');node.on('click',function(event){ var url = $(event.target).attr('url'); $scope.contentUrl=url; console.log($scope.contentUrl);}); }; });

问题解答

回答1:

homeAction 有问题:

home.directive('homeAction',function(commonFactory){ return function($scope,element,attrs){var node = element.find('li');node.on('click',function(event){ var url = $(event.target).attr('url'); $scope.contentUrl=url; console.log($scope.contentUrl);}); };});

function(commonFactory){ 没有返回 directive 的配置信息,需要返回 JSON。

相关文章: