Tôi muốn thay đổi url trong ứng dụng angularjs của mình khi đang di chuyển bằng cách nhấn vào một trường nhập liệu.Làm cách nào để thay đổi thông số trong url bằng AngularJS?
ví dụ:
- tôi ở trên:
http://localhost/test/year/2012
- tôi sẽ thay đổi ở phía bên thông qua một lĩnh vực đầu vào năm 2013 mà gọi hàm yearIsChanged của tôi, so với các url nên thay đổi để
http://localhost/test/year/2013
- Nhưng với hiện tại của tôi cấu hình url được thay đổi thành
http://localhost/test/year/2012/?year=2013
Cấu hình modul của tôi.
var module = angular.module('exampleApp').
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/test/year/:year', {templateUrl: 'partials/test.html', controller: OverviewCtrl, reloadOnSearch: false}).
otherwise({redirectTo: '/'});
}]);
hành động điều khiển:
function OverviewCtrl($scope,$routeParams, $location) {
$scope.yearIsChanged = function() {
$location.search('year', $scope.year);
}
}
Ok, mà thay đổi url của tôi một cách chính xác. Nhưng với '$ location.url (...)' là tải lại trang và tham số "' reloadOnSearch': false "không hoạt động. Có AngularJS một tham số khác cho ví dụ 'reloadOnUrlChange'? – Silver52
Tổng quan của bạnCtrl sẽ được thực thi lại khi tuyến đường thực sự thay đổi (ví dụ: không khi bạn nhập '2012') – asgoth
Nếu tôi nhập thứ gì đó vào trường nhập của mình, thì bộ điều khiển được khởi động lại và tôi mất tiêu điểm của trường nhập liệu. Đó là một vấn đề bởi vì tôi không thể tập trung đầu vào cho mỗi ký tự. : D – Silver52