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