【发布时间】:2017-09-12 20:51:23
【问题描述】:
简而言之,它是一个单页应用程序,因此 index.php 首先加载默认模板 URL 和控制器。当我单击一个按钮并移动到一个新路由(新的 templateUrl 和控制器)时,该页面中的任何内容都不起作用,单击取消按钮不会弹出警报或将我重定向到主页。
基本上 主页:列出销售页面(url#1 controller#1)->点击添加销售->添加销售页面(url#2 controller2)>按钮不起作用
路由
var app = angular.module("phpApp", ["ngRoute"]);
app.config(['$routeProvider','$locationProvider',function ($routeProvider, $locationProvider) {
$routeProvider.when("/",{
templateUrl:"view-list.php", controller: "listController"
})
.when("/add", {
templateUrl:"view-details.php", controller:"addController"
})
.when("/:index",{
templateUrl:"view-details.php", controller:"editController"
})
.otherwise({
redirectTo:"/"
});
}]);
默认模板URL(假设主索引页面只有一个“添加销售”按钮)
<div class="form-group">
<button data-ng-click="addSales()" class="btn btn-primary">Add Sales</button>
</div>
默认控制器
app.controller('listController', ['$scope', '$location','$routeParams', 'salesService', function($scope, $location, $routeParams, salesService){
$scope.data = salesService.getSales();
$scope.addSales = function(){
$location.path('/add');
};
$scope.editSales = function(x)
{
$location.path("/" + x);
};
$scope.delSales = function(x)
{
if (confirm('Are you sure to delete?'))
{
alert("deleted item asdasd");
//var index = $scope.bdays.indexOf(item);
//$scope.bdays.splice(index, 1);
}
$location.path("/");
};
}]);
Directed TemplateURL(添加销售页面) - 所以当我点击保存或取消时,它们都不会将我重定向回主页
<div class="form-group">
<button ng-click="save()" class="btn btn-primary">Save</button>
<button ng-click="cancel()" class="btn btn-primary">Cancel</button>
</div>
添加销售总监
app.controller('addController', ['$scope', '$location', '$routeParams', 'salesService',
function($scope, $location, $routeParams, salesService){
$scope.save = function()
{
salesService.addSales({id: $scope.Item.id, item: $scope.Item.item, name: $scope.Item.name, date: $scope.Item.date, price: $scope.Item.price});
$location.path('/');
};
$scope.cancel = function()
{
alert("deleted item asdasd");
$scope.$apply(function() {
$location.path('/');
});
};
}]);
【问题讨论】:
-
检查您的控制台是否有错误。如果没有错误,请发布重现问题的 plunkr。不,为什么不直接使用
<a href="...">作为链接? -
plunker 做得最糟糕,因为一切都没有显示(?),不确定这是否是我的错误(plnkr.co/edit/AToS79LLSVfo5li65awo?p=preview),检查了三次。如果我使用 就不需要路由了。
-
一旦你删除了所有无用的 jquery 和 bootstrap JS,一旦你为 angular.js 放置了正确的位置,一旦你使用未定义的 dateTimeController 删除了该部分,一旦你删除了无用的 $scope.$来自 cancel() 函数的 apply(),一切正常:plnkr.co/edit/Lthey4J7n0DXUVWaeAkE?p=preview。带有 href 的链接指向一个 URL,该 URL 映射到一个路由。当单击带有指向 URL 的 href 的链接时,角度将位置设置为该 url,路由器检测到位置更改,导航到映射到该 url 的路由。
-
@JBNizet 哇,现在可以用了,谢谢!!希望我能支持你的回答
标签: angularjs