我有一个input字段,我想在其中应用变体ngChange.
该input字段与ajax调用绑定,当用户更改输入时,服务器端将处理数据,但是,我不想经常拨打电话.
假设用户想输入一个真正的字符串,我希望只有在用户完成他要输入的单词后才能进行调用.不过,我不想使用模糊等事件.什么是更好的方法来实现这一点,而不是setTimeout?
更新:对于最新的Angular版本,问题已经过时,请参阅tsh对此帖子的评论
我已将一个复选框绑定到一个值:
<input type="checkbox" ng-model="checkbox" ng-true-value="1" ng-false-value="0" />
Run Code Online (Sandbox Code Playgroud)
控制器中复选框的值设置为1:
function Controller($scope) {
$scope.checkbox = 1
}
Run Code Online (Sandbox Code Playgroud)
但是,最初复选框似乎未选中.如果我将$scope.checkboxto 的初始值更改为"1",则确实如此.(jsfiddle演示)
我尝试了各种变化:
ng-true-value="{{1}}"
ng-true-value="{{Number(1)}}"
ng-true-value="{{parseInt('1')}}"
Run Code Online (Sandbox Code Playgroud)
他们都没有工作.如何将参数作为数字进行角度处理?
我最近将角度版本升级到6-rc.我得到了以下警告
看起来您在与formControlName相同的表单字段上使用ngModel.Angular v6中不推荐支持将ngModel输入属性和ngModelChange事件与反应式表单指令一起使用,并将在Angular v7中删除
有关此问题的更多信息,请参阅我们的API文档:https: //angular.io/api/forms/FormControlName#use-with-ngmodel
它到底是什么意思?该链接没有任何片段#use-with-ngmodel
我想我需要删除ngModel并使用formGroup作为我的数据绑定对象.
在NgModule中使用forRoot的目的是什么?
它与AngularJS 1.x中的提供程序相同吗?
它如何在延迟加载中发挥重要作用?
TIA.
是否有简短的方法来传递RxJS Subject或BehaviorSubjectAngular 2指令以进行双向绑定?其中很长的路要做如下:
@Component({
template: `
<input type="text" [ngModel]="subject | async" (ngModelChange)="subject.next($event)" />
`
})
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
@Component({
template: `
<input type="text" [(ngModel)]="subject" />
`
})
Run Code Online (Sandbox Code Playgroud)
我相信async管道只是单向的,所以这还不够.Angular 2是否提供了一种简单易行的方法?Angular 2也使用RxJS,所以我预计会有一些固有的兼容性.
我是否可以创建一个新ngModel的指令来实现这一目标?
我是AngularJS的新手,我遇到了一个问题,我无法解决,在stackoverflow上有一个类似的问题,但它似乎没有帮助我.我基本上有一个通过ng-click更新的表单,但是一旦我在任何文本框中输入文本,这些文本框就不再更新了.
这是我的HTML
Edit Course:
<li ng-repeat="course in courses">
<p>
<a ng-click="Edit_Course(course.id)">{{course.course_name}}</a>
</p>
</li>
<div ng-show="showedit == 1">
<form novalidate ng-submit="edit_course()" class="simple-form">
<label for="form_course_name">Course</label>
<input type="text" id="form_course_name" ng-model="edit_course_name">
<label for="form_par">Par</label>
<input type="text" id="form_par" ng-model="edit_course_par">
<label for="form_course_location">Course Location</label>
<input type="text" id="form_course_location" ng-model="edit_course_location">
<input type="submit" id="submit" value="Edit Course" />
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的功能,当有人点击链接时调用该功能
$scope.Edit_Course = function (id) {
var course = {
'course_id' : id
};
$http({method: "POST", url: "http://www.dgcharts.com/editcourse", data: course})
.success(function(data, status, headers, config){
thecourse = data["course"];
$scope.edit_course_name = thecourse.course_name;
$scope.edit_course_par = …Run Code Online (Sandbox Code Playgroud) 更新ngModel(以及随后的验证)的默认行为正在改变 ; 我想把它改成模糊.该文档仅解释如何做到这一点上通过的情况下,逐案:<ANY ng-model-options="{ updateOn: 'blur' }"></ANY>.我甚至通过源代码查看,但不知何故找不到ngModelOptions和ng-model-options(尽管文档中都出现了这些内容,这是从源代码中删除的).
我差不多两天都在为此而战.我希望你们能帮助我.
简介:
我在以编程方式设置某些输入字段的视图值时遇到问题.
我有一个带有输入的表单,其值在表单被删除之前保存(多个元素和多个表单可能,用户可能会关闭表单,然后重新打开).在重新打开表单时,我想恢复以前的视图值(主要原因是还要返回未保存在模型中的无效视图值).这不起作用.
如果我调用ctrl.$ setViewValue(previousValue)我得到模型(可见)更新(如果有效),formControl的视图值(在控制台中调试时)也会改变,但是我没有实际渲染它们输入字段.我不明白为什么:(
我把问题简化为这个小提琴:http:
//jsfiddle.net/g0mjk750/1/
JavaScript的
var app = angular.module('App', [])
function Controller($scope) {
$scope.form = {
userContent: 'initial content'
}
}
app.controller('Controller', Controller);
app.directive('resetOnBlur', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
element.bind('blur', function () {
console.log(ngModel);
scope.$apply(setAnotherValue);
});
function setAnotherValue() {
ngModel.$setViewValue("I'm a new value of the model. I've been set using the setViewValue method");
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
HTML
<form name="myForm" ng-app="App" ng-controller="Controller" class="form"> …Run Code Online (Sandbox Code Playgroud) 输入如下:
<input type="text" ng-model="repair.test" ng-change="action()" />
Run Code Online (Sandbox Code Playgroud)
在action()当我手动键入和改变输入被执行.但是,如果我通过编程方式通过其他函数更改repair.test值,则不会触发ng-change的操作.我已阅读角度教程,这可能是预期的行为.
https://docs.angularjs.org/api/ng/directive/ngChange
"当值变化来自模型时,不会评估表达式." < - 我也需要这个.当模型以任何方式改变时,如何在控制器中触发动作?(输入输入或任何其他功能)
谢谢您的帮助.
编辑:
模型值实际上是form.$valid,它有自己的Form控制器(我认为),这就是我使用action函数尝试将值传递给父控制器的原因.所以$scope.$watch此刻不起作用,只有在它被初始化时.
javascript data-binding angularjs angularjs-ng-change angular-ngmodel
我想过滤结果.
有一个葡萄酒列表,我的愿望是当没有选中复选框时,会显示整个葡萄酒列表.
我是AngularJS的新手,我尝试使用ng-model并没有成功,这里是没有与该函数关联的ng-model的代码:
<html ng-app="exampleApp">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.10/angular.min.js"></script>
<script>
angular.module("exampleApp", [])
.controller("defaultCtrl", function ($scope) {
$scope.wines = [
{ name: "Wine A", category: "red" },
{ name: "Wine B", category: "red" },
{ name: "wine C", category: "white" },
{ name: "Wine D", category: "red" },
{ name: "Wine E", category: "red" },
{ name: "wine F", category: "white" },
{ name: "wine G", category: "champagne"},
{ name: "wine H", category: "champagne" }
];
$scope.selectItems = function …Run Code Online (Sandbox Code Playgroud) checkbox angularjs angularjs-directive angular-ngmodel angular-filters
angular-ngmodel ×10
angularjs ×7
angular ×3
checkbox ×2
javascript ×2
data-binding ×1
html ×1
rxjs ×1
rxjs5 ×1