javascript - Controller ---工厂: passing parameters

标签 javascript angularjs controller angular-ui-router

我的 Controller 中有这个功能:

    $scope.goToPath = function ( path, pid ) {

    $scope.pid = pid;
    console.log("scope pid : " + $scope.pid);
    $scope.edit = true;
    $state.go(path);
};

然后我调用这个函数来获得我工厂的 promise :

$scope.getProjectById = function () {
    projectFactory.getProject($scope.pid)
        .success(function (data) {
            if(data == null){
                $scope.errorMessage = "Le projet avec l'id : " + pid + " n'existe pas";
            }else {

                $scope.project = data;
            }

        })
        .error(function (data, status, headers, config) {
            $scope.errorMessage = "Erreur : " + data.error + ' ' + status;
        })
};

我的工厂看起来像这样:

 factory.getProject = function (projectId) {
        console.log('Project Id factory : '+projectId);
        return $http.get('http://localhost:8080/gestionprojet/Project/' + projectId)
    };

    return factory;

但是这里的变量projectId是空的,现在我已经用console.log()检查过,我的 Controller 中的pid有一个值,但在工厂中它等于

在我看来,我这样调用它:

ng-init="getProjectById()"

如有任何帮助,我们将不胜感激。谢谢

最佳答案

With this scenario,your current scope is getting destroyed and new scope is getting creates.So,pid assigned to scope is also getting destroyed.

你可以这样做。

在函数$scope.goToPath中,

 $scope.goToPath  = function(path, pid ){
   ....
   $state.go(path,{project_id:pid })

}

在您的 View 落地的目标 Controller 中,

通过注入(inject)使用 $stateParams 访问它。

您可以引用这里angular-ui路由

关于javascript - Controller ---工厂: passing parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39297717/

相关文章:

c++ - ubuntu Linux 中的数组复制实际上不起作用

javascript - Angular - 在指令中使用 Controller 函数

javascript - 使用 JavaScript 查找文本的边界

javascript - 用于 URL 检测的反向正则表达式

javascript - 如何在数组中指定多个条件并在javascript中的if语句中调用它

css - 从页面上的按钮更新页面上的元素 CSS

angularjs - 如果应用程序处于独立状态,Facebook 登录在 PWA 应用程序中不起作用

javascript - 如何将 ng-click 绑定(bind)到插入指令嵌入 HTML block 内的 HTML block

angularjs - 在 Angular Controller 中测试 Bootstrap 模态

javascript - 如何从route/web.php获取变量到 Controller