GVKun编程网logo

Angularjs material 实现搜索框功能(angularjs select)

23

在这篇文章中,我们将为您详细介绍Angularjsmaterial实现搜索框功能的内容,并且讨论关于angularjsselect的相关问题。此外,我们还会涉及一些关于AngularMaterialU

在这篇文章中,我们将为您详细介绍Angularjs material 实现搜索框功能的内容,并且讨论关于angularjs select的相关问题。此外,我们还会涉及一些关于Angular Material UI中的Material Components在Angular Project中不起作用、angular-material – 使用Angular Material Design的主题按钮文本、angular-material – 在Angular Material中,如何使md-sidenav始终打开、angular-material – 如何摆脱Angular Material额外的样式和由它“强力”链接的CSS的知识,以帮助您更全面地了解这个主题。

本文目录一览:

Angularjs material 实现搜索框功能(angularjs select)

Angularjs material 实现搜索框功能(angularjs select)

angular-material 是 AngularJS 的一个子项目,用来提供实现了 Material Design 风格的组件。

Material 提供了大量的android 风格的UI组件,使用 angularjs + Material 可以很容易开发出风格接近原生 Android 5.x 的web界面。但在实际使用的过程中并不总是能满足我们的需求。开发一个组件就成了我们必须学习的内容。

下面是一个组件的实现:

rush:js;"> //前面省略若干代码 directive('mdsearchInput',[function(){ return{ restrict:'E',controller:['$scope','$timeout',function($scope,$timeout){ var tsk=null; $scope.delay=1000; $scope.on_changed=function(){ if(null !== tsk) {$timeout.cancel(tsk);} //去掉前一个任务 tsk = $timeout(function(){ $timeout.cancel(tsk);tsk=null; $scope.onSearch()($scope.searchText); },$scope.delay); };$scope.on_clear=function(){ var tsk=null;$scope.searchText=''; tsk=$timeout(function(){ $timeout.cancel(tsk);tsk=null; $scope.onSearch()($scope.searchText); },100); } }],scope:{ inputName: '@mdInputName',searchText: '=?mdsearchText',onSearch: '&?mdsearch',placeholder: '@placeholder',delay: '@delay' },template:'\ \
',link:function($scope,$element){ } }; }]);

CSS 样式:

rush:js;"> .md-search-input{ Box-sizing: border-Box;border: none;Box-shadow: none;background: 0 0; border-radius:5px;background: #FFF;margin:0px;position: relative; input{outline: 0;font-size: 14px; width: 100%; padding: 0 15px; line-height: 40px;height: 40px;border: none;background:transparent;} button,.md-fab,.md-button,button:hover,.md-fab:hover { background:transparent !important; line-height:40px;height:40px;width:40px;font-size:14px;Box-shadow:none !important;margin:0px;padding:0px; color:rgba(0,0.5) !important; } }

配合 ng-route 可以很容易实现无刷新的APP 让您的web页面更加接近app体验, 在 maincontroll中,通过监听 ng-route 的页面即将跳转事件 来重置消息框,

rush:js;"> //在页面改变之前,重置搜索框. $scope.$on('SearchText.Reset',function(){ $scope.searchConfig={show:false,key:'',delay:1200};}); $rootScope.$on('$routeChangeStart',function (event,next) { $rootScope.$broadcast('SearchText.Reset'); });

而在需要用到搜索功能的地方,则只需要在控制器里通过如下代码实现:

rush:js;"> //陪值搜索框为己用 $scope.$emit('Search.Config',{ show:true,delay:800,emptyText:"请输入:商家名称,账号,电话 等内容以进行搜索.",onSearch: function(){ return function(v){ $scope.merData.query(v); //调用本控制器的数据查询接口. } } });

以上所述是小编给大家介绍的Angularjs material 实现搜索框功能,希望对大家有所帮助!

Angular Material UI中的Material Components在Angular Project中不起作用

Angular Material UI中的Material Components在Angular Project中不起作用

如何解决Angular Material UI中的Material Components在Angular Project中不起作用?

我正在尝试在有角度的项目中使用材料组件,即垫子形式字段,垫子自动完成。材料按钮工作正常,但其他组件不工作。下面的邮政编码和错误-

错误-

Error Screenshot

<mat-form-field>
    <!-- #docregion input -->
        <input type="text"
               placeholder="Pick one"
               aria-label="Number"
               matInput
               [matAutocomplete]="auto">
    <!-- #enddocregion input -->
    <!-- #docregion mat-autocomplete -->
        <mat-autocomplete #auto="matAutocomplete">
            <mat-option *ngFor="let category of categoryList" [value]="category">
                {{category}}
              </mat-option>
        </mat-autocomplete>
    <!-- #enddocregion mat-autocomplete -->
</mat-form-field>

package.json ---->

"dependencies": {
"@angular/animations": "~10.1.0","@angular/cdk": "^10.1.0","@angular/common": "~10.1.0","@angular/compiler": "~10.1.0","@angular/core": "~10.1.0","@angular/forms": "~10.1.0","@angular/material": "^10.1.0","@angular/platform-browser": "~10.1.0","@angular/platform-browser-dynamic": "~10.1.0","@angular/router": "~10.1.0","rxjs": "~6.6.0","tslib": "^2.0.1","zone.js": "~0.10.2"
}

将几乎所有建议的模块都导入了app.module.ts --->

import { MatFormFieldModule,MAT_FORM_FIELD_DEFAULT_OPTIONS } from ''@angular/material/form-field'';
import { browserAnimationsModule } from ''@angular/platform-browser/animations'';
import {MatAutocompleteModule} from ''@angular/material/autocomplete'';
import {MatInputModule} from ''@angular/material/input'';
import { NgModule,CUSTOM_ELEMENTS_SCHEMA } from ''@angular/core'';
import { AppRoutingModule } from ''./app-routing.module'';
import {FormsModule,ReactiveFormsModule} from ''@angular/forms'';
import { AppComponent } from ''./app.component'';

imports: [
browserModule,AppRoutingModule,FormsModule,ReactiveFormsModule,MatAutocompleteModule,MatButtonModule,MatInputModule,MatFormFieldModule,browserAnimationsModule
],providers: [
 { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,useValue: {floatLabel: ''auto''}}
],schemas: [CUSTOM_ELEMENTS_SCHEMA],

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

angular-material – 使用Angular Material Design的主题按钮文本

angular-material – 使用Angular Material Design的主题按钮文本

我想使用$mdThemingProvider通过自定义调色板来普遍配置我网站上的所有按钮.我可以通过在调色板中配置A200和A700来操纵按钮的背景颜色.我还想更改默认文本颜色.我已经使用了contrastDefaultColor,contrastLightColors和contrastDarkColors,但我能做的最好的就是获得黑色或白色文本.

以下snippit将生成带有深色文本的白色按钮:

var lightGrey = $mdThemingProvider.extendPalette('grey',{
  'A200': '#fefefe',// Element background color (default)
  'A700': '#fefefe',// Element hover background color (default)
  'contrastDefaultColor': 'dark','contrastLightColors': '600 700 800 900'
});
$mdThemingProvider.definePalette('light-grey',lightGrey);

$mdThemingProvider.theme('default')
  // Accent palette controls buttons,links,etc
  .accentPalette('light-grey');

将contrastDefaultColor更改为“light”会导致文本变为白色.

我可以通过覆盖生成的样式表的规则来手动实现我想要的效果:

.md-button.md-default-theme.md-fab {
  color: #bdc3c7;
}

…但我正在尝试使用库中提供的工具.

解决方法

我不知道你为什么要面对这个问题但是给了A200& A700你想要的颜色将解决问题.像这样:

var lightGrey = $mdThemingProvider.extendPalette('grey',{
  'A200': '#bdc3c7',// Element background color (default)
  'A700': '#bdc3c7','contrastLightColors': ['600','700','800','900']
});

注意:尝试以阵列形式提供对比色调.

如果您遇到一些不同的问题,请更新或者您可以参考这个link

angular-material – 在Angular Material中,如何使md-sidenav始终打开

angular-material – 在Angular Material中,如何使md-sidenav始终打开

可见切换按钮并随时关闭它?

我做了几次尝试但都失败了.

我上传了今天的图片,但它没有切换,只是在较低的分辨率下.

知道怎么做吗?

在material2中找到一种方法,我遇到了很多麻烦.
最后,我发现这样阅读源代码:
<md-sidenav opened="true" disableClose="true">

angular-material – 如何摆脱Angular Material额外的样式和由它“强力”链接的CSS

angular-material – 如何摆脱Angular Material额外的样式和由它“强力”链接的CSS

>我正在使用JSPM / SystemJS
>我正在使用Angular Material和额外的lib表(也导入了Angular Material)
>我也很乐意使用@import’angular-material.scss’来使用SASS ONLY版本的Angular Material

但是,当我这样做并链接我编译的app.css时,我从Angular Material获得了额外的收益:

>我得到多个< style> < head>中的标签拥有数以万计的CSS样式(?????)
>我得到两个额外< links>在< head>中每次导入带有SystemJS的’angular-material.js’包(一个来自我的JS,另一个来自额外的库 – 不同的版本)

enter image description here

那是因为我和额外的lib我们从JS角度材料包导入.这不是我要求的 – 我只想要我的app.css.那么,我怎样才能摆脱额外的标签?

我想问题是angular-material添加到package.json的JSPM部分:

"shim": {
      "angular-material": {
        "deps": [
          "./angular-material.css!"
        ]
      }
    },

和JSPM在第一行更改angular-material.js:

"format global";
"deps ./angular-material.css!";

我个人认为这是一个非常烦人的BUG而不是功能 – 它使得无法使用SASS版本并且不可能永久地纠正它 – 当我在JSPM包下载时更改它在更新后或在安装期间被覆盖(这使我无法分发应用程序).

所以,问题是 – 有没有办法永久摆脱所有额外< style>和< link>由JSPM / AngularMaterial插入的标签,所以我只能使用我的SASS编译版样式? (已经分叉了lib并删除了垫片,但也许我的应用程序中有配置允许我使用’官方’版本?)

解决方法

这篇文章有我认为您正在寻找的答案!
How to disable CSS imports in JSPM / SystemJS

使用jspm安装角度材料,同时覆盖垫片依赖性:

jspm install angular-material -o '{ shim: {} }'

这可以防止jspm添加angular-material.css作为依赖.接下来,您可以使用以下命令将angular-material.scss重新导入SASS文件:

@import 'jspm_packages/github/angular/bower-material@0.11.4/angular-material.scss';

这将再次重新导入所有css,但进入你的css工作流程.或者您可以使用jspm重新导入它.首先安装jspm css插件:

jspm install css

然后使用javascript导入css:

import 'angular-material/angular-material.css!'
import angularMaterial from 'angular-material';

这将需要首先使用SASS编译css文件.有一个选项可以使用jspm动态编译SASS.但对我来说似乎很慢:

jspm install scss=sass

然后使用:

import 'angular-material/angular-material.scss!'

更新:angular-material还包含一些默认主题css作为JavaScript中的const变量.您可以在底部的angular-material.js中查看此代码:

angular.module("material.core").constant("$MD_THEME_CSS"...

加载到浏览器后,会向页面文档动态添加大量css样式标记.要禁用它们,您需要使用以下命令自行重新编译角度材料:

git clone https://github.com/angular/material.git

然后安装依赖项:

cd material
npm install

然后转到gulp / util.js并从以下位置更改第53行:

var jsProcess = series(jsBuildStream,themeBuildStream() )

成为:

var jsProcess = series(jsBuildStream)

然后运行构建过程:

gulp build

然后将dist /文件夹中新创建的文件复制到项目中.这也将减少来自的文件大小:

angular-material.js 842KB> 792KB
angular-material.min.js 291KB> 242KB

我将要求默认情况下不将主题包含在angular-material库所有者中.

关于Angularjs material 实现搜索框功能angularjs select的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Angular Material UI中的Material Components在Angular Project中不起作用、angular-material – 使用Angular Material Design的主题按钮文本、angular-material – 在Angular Material中,如何使md-sidenav始终打开、angular-material – 如何摆脱Angular Material额外的样式和由它“强力”链接的CSS等相关内容,可以在本站寻找。

本文标签: