Angular需要将工作代码移动到部分或其他页面html下显示的内容

时间:2015-08-28 20:19:37

标签: html angularjs angularjs-scope angular-template

我有一个Angular SPA,其中工作正常,但业务要求我从这个link-group.html(它有自己的控制器,模块等)移动代码。

带有放入模板的代码的URL或将代码放在其他html代码supervisors.html下面的

我需要移动的link-group.html中的新闻网址:

http://localhost:1337/doc-home/#/tips/2?paginatePage=1

文件:

link-group.html

位置:

enter image description here

然后我需要显示的位置(移动到)

URL:

http://localhost:1337/doc-home/#/supervisors

文件:

supervisors.html

位置:

enter image description here

模板? 控制器参考?

更新

我想从link.group.html获取所有代码并将其移至supervisor.html页面

但是,有一些特定的代码指的是基于URL的控制器/模块/数据库

<div class="links-group" ng-repeat="group in groups" ng-show="!group.hidden">


<div ng-show="!edit" style="margin: 5px 0;">
<h3>{{ group.title }}</h3>

<div ng-show="edit === true">
<input style="margin: 5px 0" placeholder="title..." class="input" ng-model="group.title" />

根据OP的建议更新2

supervisor.html的当前controller.js

angular.module('supervisors')
 .controller('SupervisorsCtrl',

  function ($scope, UserService) {
      UserService.get(function (err, user) {
      $scope.user = user;
  });

});

所以为了修改我可以在它下面添加另一个模块吗?

 angular.module('supervisors')
 .controller('SupervisorsCtrl',

  function ($scope, UserService) {
      UserService.get(function (err, user) {
      $scope.user = user;
  });

});

angular.module('linkgroup', ['ng'])
     .directive('linkgroup', function({{ dependencies of your controller here }}) {
return {
    templateUrl: {{ url of the template, likely link-group.html }},
    link: function($scope, $element, $attributes) {
        // think of this as the controller of a directive
        {{ code of your controller, 
           replace `this` with `$scope` if you used ControllerAs }}
    }
 };
});

看来common文件夹中没有module.js,有一个directives.js和controller.js 但是我看到链接文件夹中有这个代码

angular.module('links')

.controller('LinksCtrl', function ($scope, LinksService, SearchService, UserService, notify, $window, $location) {

$scope.message = "";

UserService.get(function (err, user) {
    if (err) {
        notify.error('Error getting current user.');
    } else {
        if (user.groups.WEB_ESO !== true) {
            $location.path('/');
        }
    }
}); 

1 个答案:

答案 0 :(得分:0)

听起来你可以使用包含link-group的{​​{3}}。转换非常简单(如果你在控制器中使用$scope,它几​​乎是直接复制+粘贴):

angular.module('linkgroup', ['ng'])
.directive('linkgroup', function({{ dependencies of your controller here }}) {
    return {
        templateUrl: {{ url of the template, likely link-group.html }},
        link: function($scope, $element, $attributes) {
            // think of this as the controller of a directive
            {{ code of your controller, 
               replace `this` with `$scope` if you used ControllerAs }}
        }
    };
});

然后在supervisors.html底部添加<linkgroup></linkgroup>