【问题标题】:Angular JS Routing with ng-clickAngular JS 路由与 ng-click
【发布时间】:2015-09-22 12:56:19
【问题描述】:

我遇到了无法解决的 Angular js 问题,所以我需要您的帮助... 这是我的代码:

angular.module("test2", ["ng.route"])

.config(function($routeProvider){

$routeProvider.when ("/contratti",
{
templateUrl:"eleconContrattiAngular.jsp",
controller: "goCTRL"
}

);
});

<a href="#/contratti/rowId=rowId=123">dettaglio</a> `

这将是我的带有链接的配置...如何在按钮中转换此链接? 我试过这个:

function goCTRL($scope,$location) {
    $scope.goBack = function (hash) {
            $location.path(hash); 
    }       
    }    
 <button ng-click="goBack('#/contratti')">BACK</button>

但它甚至没有工作......

【问题讨论】:

    标签: javascript angularjs url-routing angularjs-routing angularjs-ng-click


    【解决方案1】:

    使用 $location.path 时,您不想包含井号 (#)。根据$location 的描述,路径将始终以正斜杠开头,或者将在路径的开头添加正斜杠。这意味着在您的示例中,您正在尝试访问 www.yoursite.com/#/#/contratti。由于这不是有效路径,因此无法正常工作。

    解决这个问题的简单方法是从函数调用中取出哈希值,看看它是否有效。所以在按钮中,它将是 ng-click="goBack('/contratti')"

    【讨论】:

    • 它看起来也不像您正在注册控制器或可能将控制器添加到模块中,具体取决于您的代码是如何中断的...根据您的设置方式,尝试添加module.controller('goCTRL', ['$scope', '$location', controller]); 函数结束后 goCTRL (...){...}
    • @lucky.hooligan 喜欢这样吗?
    • 应该是这样的,但您需要在文件顶部包含var module = angular.module('test2')。更传统的方式是var myApp = angular.module('test2'); myApp.controller('goCTRL', ['$scope', '$location', function($scope, $location) { $scope.goBack = function (hash) { $location.path(hash); } }]);
    • .. 没什么...我想我会继续使用 href 配置。非常感谢您的支持!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多