使用angularjs

时间:2015-06-09 15:07:15

标签: javascript jquery angularjs validation

我有一个文本输入,它提取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;
    }
}

});

JSFIDDLE

2 个答案:

答案 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;])来获取您想要检查的号码。