不同模块之间的角度路由

时间:2016-09-29 12:09:51

标签: angularjs

我有两个模块 - App1和App2。 App1有一个控制器,Main。 App2有2个控制器,第一个和第二个。 我在App1的主控制器的模板(mainTemp)中有一个按钮。 单击该按钮如何路由到App1模块中第一个控制器的模板(firstTemp)?

这就是我的App2模块的样子 -

angular.module('App1', ['ngRoute']) 
.config(function ($routeProvider, $locationProvider) {

$routeProvider
.when('/first', {
    templateUrl: '/Template/firstTemp.html',
    controller: 'First'
})
.when('/second', {
    templateUrl: '/Template/secondTemp.html',
    controller: 'Second'
})
$locationProvider.html5Mode(false).hashPrefix('!'); 
})
.controller('First', function ($scope, $http, $location) {

    $scope.savedata = function (employee) {

        $scope.employees = "";
        $http.post("/Data/AddEmployee", { empl: employee })
        .success(function (result) {

            $scope.employees = result;
            $location.path('/second');
        })
        .error(function (result) {
            alert(result);
        });
    }
})
.controller('Second', function ($scope,$http) {
 })

这是App1模块主控制器的模板(mainTemp) -

<div ng-app="App2" ng-controller="Main">
     <input type="button" value="submit" name="btnSave" ng-click="route_()" />
</div>

1 个答案:

答案 0 :(得分:1)

有三种方法可以解决这个问题:

  1. 为两者创建顶级模块,并在ng-app="app"指令中使用它。

    var app1 = angular.module('app1',[])

    var app2 = angular.module('app2',[])

    var app = angular.module('app',['app1','app2','ngRoute']);

  2. 将app1添加为app2的依赖项。在html中:ng-app="app2"

    var app = angular.module('app1',['ngRoute'])

    var app2 = angular.module('app2',['app1'])

  3. 只需要一个模块。即使它跨越不同的文件。

    var app = angular.module('app',['ngRoute'])

    var app = angular.module('app')

  4. 就个人而言,我更喜欢第三种方法。