Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 仅在客户端输入验证后运行角度函数_Angularjs - Fatal编程技术网

Angularjs 仅在客户端输入验证后运行角度函数

Angularjs 仅在客户端输入验证后运行角度函数,angularjs,Angularjs,我有一个函数“loadNewChannel()”,现在在输入字段中键入任何值时运行。我只想在通过基本客户端列表验证值时运行它 我发现哪些应该满足我的需求,但我不确定如何实现它作为启动函数的条件 角形文字 var Channelinput = 'no-layout-archive'; var app = angular.module('arenaApp', ['ngResource', 'ngSanitize', 'infinite-scroll']); app.controller('chan

我有一个函数“loadNewChannel()”,现在在输入字段中键入任何值时运行。我只想在通过基本客户端列表验证值时运行它

我发现哪些应该满足我的需求,但我不确定如何实现它作为启动函数的条件

角形文字

var Channelinput = 'no-layout-archive';
var app = angular.module('arenaApp', ['ngResource', 'ngSanitize', 'infinite-scroll']);

app.controller('channelShow', function($scope, $resource) { 
  var Channel = $resource('http://api.are.na/v2/channels/:slug');

  var channel = Channel.get({slug: Channelinput, sort: 'position', direction: 'asc'}, function(){
            $scope.channel = channel;
          });

    $scope.loadNewChannel = function(){
                var channel = Channel.get({slug: 'no-layout-premium-archive', sort: 'position', direction: 'desc'}, function(){
                $scope.channel = channel;
    });
  }
})
HTML


我知道这不是一个安全的系统,但它是一个小测试版,这不是一个问题。实时链接(单击“访问特优”以可视化输入字段):


欢迎任何帮助,谢谢

如果验证发生在客户端,并且是自定义验证,您可以尝试以下方法:

var Channelinput = 'no-layout-archive';
var app = angular.module('arenaApp', ['ngResource', 'ngSanitize', 'infinite-scroll']);

app.controller('channelShow', function($scope, $resource) {
    var Channel = $resource('http://api.are.na/v2/channels/:slug');

    var channel = Channel.get({ slug: Channelinput, sort: 'position', direction: 'asc' }, function() {
        $scope.channel = channel;
    });

    $scope.loadNewChannel = function() {
        var channel = Channel.get({ slug: 'no-layout-premium-archive', sort: 'position', direction: 'desc' }, function() {
            $scope.channel = channel;
        });
    };

    $scope.passcode = '';

    function validatePasscode(code) {
        // put validation logic here, return true or false
        return code == "somevalidpasscode";
    }

    $scope.$watch('passcode', function(value) {
        var isValid = validatePasscode(value);

        if (isValid) {
            $scope.loadNewChannel();
        }
    });
});
您的输入将丢失keyup事件并具有ng model属性:

<input placeholder="passcode" onfocus="this.placeholder = ' '" onblur="this.placeholder = 'passcode'" ng-model="passcode" >


希望这有帮助

谢谢。如果你有耐心向我展示一个非常简单的验证逻辑示例,它可以在那里工作(比如passcode==='secretword'返回true),那就太好了,我试过了,但没能成功,我是angular的新手。一点问题都没有。。。实际上,在ValidatePascode函数中没有angular,它只是javascript,我用一个例子编辑了答案,请告诉我它是否有效。
<input placeholder="passcode" onfocus="this.placeholder = ' '" onblur="this.placeholder = 'passcode'" ng-model="passcode" >