我有一个文本输入,它提取window.location.href
的值,查找?=
并去掉用作输入值的尾随值。我无法通过验证来检查=
之后是否有值,如果没有则显示错误。
它正在测试的完整网址是http://localhost:3000/admin/tagger.html?=1234567
,其中1234567
应该是文本框中的值。如果=
后没有数字值,则显示错误。
var myApp = angular.module("myApp", []);
myApp.controller("myController", function ($scope, $http) {
$scope.init = function () {
var url = window.location.href;
var accountId = url.substr(url.indexOf("=") + 1);
if ($(".accountNumber").val() !== window.location.href + "?=") {
alert("ERROR");
} else {
$scope.accountNumber = accountId;
}
}
});
答案 0 :(得分:1)
如果我理解你的问题,那么你可以改变你的代码。
$scope.init = function () {
var url = window.location.href;
var urlParts = url.split('?=');
var accountId = urlParts[1];
if (!accountId) {
alert("ERROR");
} else {
$scope.accountNumber = accountId;
}
}
答案 1 :(得分:0)
如果您以不同方式配置路由,则可以将网址更改为:http://localhost:3000/admin/tagger/1234567
您的路由看起来像这样:
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/admin/tagger/:id', {
templateUrl: '<path to your html template>'
}
});
}]);
然后在你的函数中你可以使用$ routeParams检查:id
的值,如下所示:
myApp.controller('myController', ['$routeParams', function($routeParams) {
$scope.init = function() {
if ($(".accountNumber").val() !== $routeParams.id) {
alert("ERROR");
} else {
$scope.accountNumber = accountId;
}
}])
或者沿着这些方向的东西。原则是:您可以通过调用$ routeParams.id(或$ routeParams [&#39; id&#39;])来获取您想要检查的号码。