我正在使用Ionic,并且有一个ion-textarea我想自动调整大小,即随着用户添加更多文本而扩展 . 我找到ionic2-autosize,这是 directive
. 但是,我似乎无法使 directive
对我的ion-textarea产生任何影响,即它不会随着用户添加更多文本而扩展 .
我跑:
npm install --save ionic2-autosize
package.json
"ionic2-autosize": "^1.1.1",
app.module.ts
import {Autosize} from 'ionic2-autosize';
@NgModule({
declarations: [
MyApp, Autosize
],
...
review.ts
<ion-textarea autosize [(ngModel)]="ratingModel.review" formControlName="review" id="review"></ion-textarea>
如您所见,我将 autosize
属性添加到 ion-textarea
,但这没有任何效果,它的行为类似于常规 ion-textarea
,只有2行的高度 . 我希望高度能够动态扩展 .
任何帮助赞赏 .
More info:
global packages:
@ionic/cli-utils : 1.1.2
Cordova CLI : 6.4.0
Ionic CLI : 3.1.2
local packages:
@ionic/app-scripts : 1.3.0
@ionic/cli-plugin-cordova : 1.1.2
@ionic/cli-plugin-ionic-angular : 1.1.2
Ionic Framework : ionic-angular 3.2.1
System:
Node : v7.10.0
OS : macOS Sierra
Xcode : Xcode 8.3.2 Build version 8E2002
ios-deploy : not installed
ios-sim : not installed
UPDATE
我将 AutosizeModule
添加到我的模块中:
review.module.ts
import {AutosizeModule} from 'ionic2-autosize';
@NgModule({
declarations: [ReviewPage],
imports: [IonicPageModule.forChild(ReviewPage), ControlMessagesModule, RatingComponentUpdateableModule, AutosizeModule],
exports: [ReviewPage]
})
export class ReviewPageModule { }
但得到这个错误:
错误错误:未捕获(在承诺中):错误:类型自动调整大小是2个模块的声明的一部分:AppModule和AutosizeModule!请考虑将Autosize移动到导入AppModule和AutosizeModule的更高模块 . 您还可以创建一个新的NgModule,它导出并包含Autosize,然后在AppModule和AutosizeModule中导入NgModule .
UPDATE
我从 app.module.ts
中删除了它,似乎修复了上述错误 . 但是,现在我得到:
错误错误:未捕获(在承诺中):错误:已加载BrowserModule . 如果需要从延迟加载的模块访问常用指令(如NgIf和NgFor),请改为导入CommonModule . 错误:已加载BrowserModule . 如果需要从延迟加载的模块访问常用指令(如NgIf和NgFor),请改为导入CommonModule .
UPDATE
而是用 CommonModule
:
review.module.ts
//import {AutosizeModule} from 'ionic2-autosize';
import { CommonModule } from '@angular/common';
@NgModule({
declarations: [ReviewPage],
imports: [IonicPageModule.forChild(ReviewPage), ControlMessagesModule, RatingComponentUpdateableModule, CommonModule],
exports: [ReviewPage]
})
export class ReviewPageModule { }
app.module.ts
import { AutosizeModule } from 'ionic2-autosize';
...
@NgModule({
declarations: [
MyApp
],
imports: [
IonicModule.forRoot(MyApp),
BrowserModule,
AutosizeModule,
HttpModule,
AngularFireModule.initializeApp(firebaseConfig),
IonicStorageModule.forRoot()
],
错误消失了,但 ion-textarea
仍然没有自动调整大小 .
1 回答
我在他的git上创建了一个pull请求,希望他能解决它 . 您需要做的就是删除BrowserModule .
整个项目的项目需要BrowserModule . 如果需要,小的NgModules(ngIf,ngFor,ngClass等)需要CommonModule .
在Ionic3中,只有最顶层的@NgModule才会拥有BrowserModule .
供参考https://github.com/misha130/ionic2-autosize/commit/3b40925dca104ec76fe55b4af3a726efb7e3efbe