如何将模块A中的参数传递给模块B?

时间:2016-06-02 08:47:56

标签: angularjs

我正在学习AngularJs,我尝试在索引上使用一个页面/一个模块模式和一个超级模块。

现在,我有一条路线可以打开一个显示特定食谱的页面。 我可以使用路由显示我的页面。我在我的路线中放了一个参数,但是我无法在recipe_module中访问我的参数。

这是我的代码:

我的索引模块

var layout = angular.module( 'LayoutApp', [
                                    // Dépendances du "module"
                                    'ngRoute',
                                    'RecipeDetailsApp'
                                        ]);
layout.config( [ '$routeProvider', function( $routeProvider ) {
    $routeProvider
        .when( '/recettes_details/:idRecette', {
            templateUrl: 'partials/recettes_details.html',
        } );
}]);

我的食谱模块:

var RecipeDetails = angular.module( 'RecipeDetailsApp', [ 'ngFactoryApp', 'ngRoute' ] );

RecipeDetails.controller( 'RecipeDetailsCtrl', [ 'ngFactory', function( ngFactory, $routeParams ) {
this.recipeId = $routeParams.param;

}]);

最后我的食谱HTML

<div ng-app="RecipeDetailsApp" ng-controller="RecipeDetailsCtrl as recipeDetailsCtrl">
    <h1> {{RecipeDetailsCtrl.recipeId}}</h1>
</div>

如何在不使用$ scope变量的情况下为recipe_module提供任何参数? 感谢

2 个答案:

答案 0 :(得分:0)

我建议你创建一个模块,其中包含所有模块通用的所有内容(服务,指令,过滤器),并将其包含在您需要的模块中。

类似的东西:

angular.module('Common',[])
.factory('Common.utilsSvc', function(){

})

然后在你的公共模块中使用:

var layout = angular.module( 'LayoutApp', ['Common']);

希望它有所帮助!

答案 1 :(得分:0)

我终于理解了我的错误。 我的注入语法很糟糕......我写道:

RecipeDetails.controller( 'RecipeDetailsCtrl', [ 'ngFactory', function( ngFactory, $routeParams ) {
this.recipeId = $routeParams.param;

}]);

我应该写的地方:

RecipeDetails.controller( 'RecipeDetailsCtrl', '$routeParams, [ 'ngFactory', function( ngFactory, $routeParams ) {
this.recipeId = $routeParams.param;

}]);

现在,我可以将参数从一个页面发送到另一个页面。

谢谢!