Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs-同一控制器,不同路线的不同方法/变量_Angularjs_Angular Ui Router - Fatal编程技术网

angularjs-同一控制器,不同路线的不同方法/变量

angularjs-同一控制器,不同路线的不同方法/变量,angularjs,angular-ui-router,Angularjs,Angular Ui Router,是否有一种方法可以使用相同的控制器,但为不同的路由公开不同的作用域方法/变量 我目前正在使用ui路由器,希望为/new、/edit、/delete公开不同的方法/变量。您可以让所有路由指向同一控制器,但在控制器中使用$stateparms来确定需要调用哪个方法。你觉得没必要比这更难吗?除非我误解了这个问题。您可以让所有路由指向同一个控制器,但在控制器中使用$stateparms来确定需要调用哪个方法。你觉得没必要比这更难吗?除非我误解了这个问题。是的 使用ui路由器 angular.module

是否有一种方法可以使用相同的控制器,但为不同的路由公开不同的作用域方法/变量


我目前正在使用ui路由器,希望为
/new
/edit
/delete
公开不同的方法/变量。您可以让所有路由指向同一控制器,但在控制器中使用$stateparms来确定需要调用哪个方法。你觉得没必要比这更难吗?除非我误解了这个问题。

您可以让所有路由指向同一个控制器,但在控制器中使用$stateparms来确定需要调用哪个方法。你觉得没必要比这更难吗?除非我误解了这个问题。

是的

使用
ui路由器

angular.module("myModule")
.controller("myController",function($scope,$stateParams){
    if ($stateParams.mySubView === "/new") {
       $scope.hello = function(){alert("Hello")};
    } else {
       $scope.hello = function(){alert("Hi")};
    }
})

使用
ui路由器

angular.module("myModule")
.controller("myController",function($scope,$stateParams){
    if ($stateParams.mySubView === "/new") {
       $scope.hello = function(){alert("Hello")};
    } else {
       $scope.hello = function(){alert("Hi")};
    }
})

使用相同的模板但使用不同的控制器不是更有意义吗

使用相同的模板但使用不同的控制器不是更有意义吗

是的,那很好用。我想知道是否有一种方法可以将更多的逻辑移到
$stateProvider
中,在这里我可以指定一个方法来调用一个包含所有变量和$scope methods的函数,这将非常有效。我想知道是否有一种方法可以将更多的逻辑移到
$stateProvider
中,在这里我可以指定一个方法来调用一个包含所有变量的函数,$scope方法我同意你的观点,我相信同一个控制器行为不同肯定会违反开闭原则。我同意你的观点,我相信同一个控制器行为不同肯定会违反开闭原则。