我为此代码and it can be viewed here:
创建了一个plunkr问题很简单。我正在尝试创建主/详细信息方案。所以有两个模板:列表和详细信息。在列表控制器中,有一种方法重定向到detials路由。这种方法效果很好,因为我用调试器验证了它(通过断点)。
$scope.goToDetails = function(propItem) {
//$rootScope.currentProperty = propItem;
$location.path('/details/');
}
'详细信息'路径(请参阅打击)调用'detailsController',它当前(用于测试目的)定义为:
var detailsController = function($scope, $http, $routeParams, $rootScope) {
var dosomething = "do";
};
我向调试器验证了执行确实达到了“dosomething”命令,并且路由在浏览器中更改为“details”。但是,HERE是问题,当我继续使用调试器时,angular会将路由更改回默认路由。我仔细考虑了这些定义,但我所做的一切似乎都不对。任何想法?
以下是我如何定义路线:
app.config(function($routeProvider) {
$routeProvider
.when('/main/', routes.main)
.when('/details/', routes.details)
.otherwise({
redirectTo: '/main'
});
});
var routes = {
main: {
templateUrl: 'PropertiesResults.html',
controller: 'listingController'
},
details: {
templateUrl: 'property-detail.html',
controller: 'detailsController'
},
}
答案 0 :(得分:1)
替换:
<a href="#" ng-click="goToDetails(property)" ...
使用:
<a href="" ng-click="goToDetails(property)" ...
或者它将转到您的otherwise
路线。
答案 1 :(得分:0)
将您的链接更改为
<a href="#/details">Read More</a>
需要考虑的一些事项:
<a ng-disabled="expression"...
禁用该链接,这可能不是开箱即用的,但您可以添加自定义指令。<button type="button" class="link"...
并将其设置为看起来像链接,例如display: inline; border: 0; background: transparent;
&#34; 快乐编码