在本文中,我们将给您介绍关于AngularJS和contentEditable两种方式的绑定无法正常工作的详细内容,并且为您解答angularjs数据绑定的相关问题,此外,我们还将为您提供关于andr
在本文中,我们将给您介绍关于AngularJS和contentEditable两种方式的绑定无法正常工作的详细内容,并且为您解答angularjs数据绑定的相关问题,此外,我们还将为您提供关于android – Gradient XML drawable center无法正常工作、Android支持Cardview contentPadding无法正常工作、angular 1.2.5 contenteditable 指令、Angular 2与contentEditable div和ngModel支持形成的知识。
本文目录一览:- AngularJS和contentEditable两种方式的绑定无法正常工作(angularjs数据绑定)
- android – Gradient XML drawable center无法正常工作
- Android支持Cardview contentPadding无法正常工作
- angular 1.2.5 contenteditable 指令
- Angular 2与contentEditable div和ngModel支持形成
AngularJS和contentEditable两种方式的绑定无法正常工作(angularjs数据绑定)
在下面的示例中,为什么初始呈现值{{ person.name }}
不是David
?您将如何解决?
这里的例子
HTML:
<body ng-controller="MyCtrl"> <div contenteditable="true" ng-model="person.name">{{ person.name }}</div> <pre ng-bind="person.name"></pre></body>
JS:
app.controller(''MyCtrl'', function($scope) { $scope.person = {name: ''David''};});app.directive(''contenteditable'', function() { return { require: ''ngModel'', link: function(scope, element, attrs, ctrl) { // view -> model element.bind(''blur'', function() { scope.$apply(function() { ctrl.$setViewValue(element.html()); }); }); // model -> view ctrl.$render = function() { element.html(ctrl.$viewValue); }; // load init value from DOM ctrl.$setViewValue(element.html()); } };});
答案1
小编典典问题是当插值尚未完成时,您正在更新视图值。
所以删除
// load init value from DOMctrl.$setViewValue(element.html());
或替换为
ctrl.$render();
将解决问题。
android – Gradient XML drawable center无法正常工作
我正在尝试创建一个XML渐变drawable来匹配Material Design guidelines中提到的这种风格
这是我的XML代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:centerY="30%"
android:endColor="@android:color/transparent"
android:startColor="#4d000000"
android:type="linear"/>
</shape>
我已经尝试将centerY设置为0.3,但没有成功. drawable在预览中总是看起来一样.
有人能告诉我该怎样做才能达到那种风格吗?提前致谢.
解决方法:
我不太明白你的错误.您可能首先必须设置centerColor.如果您还没有,请查看文档:
https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html
但是在使用XML drawable进行繁殖之前会给你一个线性渐变,我建议你使用Roman Nuriks尝试这个问题.在这里查看更多:
https://plus.google.com/+RomanNurik/posts/2QvHVFWrHZf
他通过使用Drawable的Java实现解决了这个问题.像任何其他drawable一样工作.
Android支持Cardview contentPadding无法正常工作
我想在我的支持cardview中添加一个contentPadding.此填充是在4.4设备上正确计算的,但在4.1.2设备上,内容缓冲区不起作用.
的build.gradle:
dependencies {
compile filetree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
}
XML布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v7.widget.CardView
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
card_view:cardCornerRadius="4dp"
card_view:contentPaddingLeft="32dp"
card_view:contentPaddingRight="32dp"
card_view:contentPaddingTop="32dp"
card_view:contentPaddingBottom="32dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a very long text with more blablablablablablablablabla bla bla bla blablablablabla bla blablablablablabla blablablablabla blablablablabla blablabla"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
设备运行4.1.2的结果:
contentPadding无法识别.
运行4.4.2设备的相同应用:
contentPadding被正确识别.
我在这个帖子上找到了解决这个问题的方法:How to set the padding for CardView widget in Android L
但我想知道,如果其他人正面临这个问题或者能提供更好的解决方案吗?
编辑:
目前,它似乎只是运行Android 4.1.2的Sony XPERIA L设备上的一个错误.我测试了运行4.1.2的galaxy Nexus,在这种情况下,一切看起来都不错.
解决方法:
使用setUseCompatPadding(true)或XML参数app:cardUseCompatPadding =“true”
angular 1.2.5 contenteditable 指令
<table><tr>
<td><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
behind attrs. html ' html ngModel.$setViewValuehtml
总结
以上是小编为你收集整理的angular 1.2.5 contenteditable 指令全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Angular 2与contentEditable div和ngModel支持形成
这有效:
<input type="text" [(ngModel)]="value">
但这会引发错误:
<div contentEditable="true" [(ngModel)]="value"></div>
TypeError: setting a property that has only a getter
有没有办法在Angular Forms中使用div?我不想使用输入或textarea
ngModel只能在支持它的元素上访问!
您可以创建指令或自定义输入组件.
无论如何,它必须实现此接口ControlValueAccessor.
指示:
工作演示:https://plnkr.co/edit/12vAEFf2OBS3ERu9fhwk?p=preview
import {Directive,Component,NgModule,forwardRef,ViewChild,ElementRef,HostListener,Renderer} from '@angular/core' import {browserModule} from '@angular/platform-browser' import { FormsModule,ControlValueAccessor,NG_VALUE_ACCESSOR } from '@angular/forms'; @Directive({ selector: 'div[contentEditable]',providers: [ { provide: NG_VALUE_ACCESSOR,useExisting: forwardRef(() => EditableDivDirective),multi: true } ] }) export class EditableDivDirective implements ControlValueAccessor { constructor(private _elRef: ElementRef,private _renderer: Renderer) { } onChange() { if (this._onChange) { this._onChange(this._elRef.nativeElement.innerText); } } @HostListener('keyup',['$event']) keyup(event: any) { this.onChange(); } // ControlValueAccessor implementation // ==================================== private _onChange = (_) => { }; // call it if your value changed.. private _onTouched = () => { }; // call it "on blur" .. // will be called if a values comes in via ngModule ! writeValue(val: any) { if (!val) val = ''; this._renderer.setElementProperty(this._elRef.nativeElement,'innerText',val); } registerOnChange(fn: (_: any) => void): void { this._onChange = fn; } registerOnTouched(fn: () => void): void { this._onTouched = fn; } } @Component({ selector: 'my-app',template: ` <div> <h2>Hello {{name}}</h2> <div contentEditable="true" [(ngModel)]="name">test test test</div> </div> `,}) export class App { name:string; constructor() { this.name = 'Angular2' } } @NgModule({ imports: [ browserModule,FormsModule ],declarations: [ App,EditableDivDirective ],bootstrap: [ App ] }) export class AppModule {}
零件:
查看工作演示:https://plnkr.co/edit/XMSTrWSe3gN9iwVTBukz?p=preview
import {Component,ElementRef} from '@angular/core' import {browserModule} from '@angular/platform-browser' import { FormsModule,NG_VALUE_ACCESSOR } from '@angular/forms'; @Component({ selector: 'my-name-input',template: ` <div> <label>first name</label> <div #firstName contentEditable="true" (keyup)="onChange()">{{this._firstName}}</div> <br /> <label>last name</label><input [(ngModel)]="_lastName" (ngModelChange)="onChange()" /> </div> `,providers: [ // IMPORTANT !! { provide: NG_VALUE_ACCESSOR,useExisting: forwardRef(() => MyCompleteNameInputComponent),multi: true } ] }) export class MyCompleteNameInputComponent implements ControlValueAccessor { @ViewChild('firstName') editableDiv: ElementRef; private _firstName: string = ''; private _lastName: string = ''; onChange() { this._firstName = this.editableDiv.nativeElement.innerText; if (this._onChange) { this._onChange(this._firstName + ' ' + this._lastName); } } // ControlValueAccessor implementation // ==================================== private _onChange = (_) => { }; // call it if your value changed.. private _onTouched = () => { }; // call it "on blur" .. // will be called if a values comes in via ngModule ! writeValue(val: any) { if (!val || !val.split) val = ''; let splitted = val.split(' '); this._firstName = splitted[0] || ''; this._lastName = splitted[1] || ''; } registerOnChange(fn: (_: any) => void): void { this._onChange = fn; } registerOnTouched(fn: () => void): void { this._onTouched = fn; } } @Component({ selector: 'my-app',template: ` <div> <h2>Hello {{name}}</h2> <my-name-input [(ngModel)]="name"></my-name-input> </div> `,MyCompleteNameInputComponent ],bootstrap: [ App ] }) export class AppModule {}
今天关于AngularJS和contentEditable两种方式的绑定无法正常工作和angularjs数据绑定的介绍到此结束,谢谢您的阅读,有关android – Gradient XML drawable center无法正常工作、Android支持Cardview contentPadding无法正常工作、angular 1.2.5 contenteditable 指令、Angular 2与contentEditable div和ngModel支持形成等更多相关知识的信息可以在本站进行查询。
本文标签: