javascript - 具有 Modernizr 值的 Angular 表达式?

标签 javascript angularjs modernizr

如果没有对新输入类型的 html 5 native 浏览器支持,我想显示不同的控件。

我希望做这样的事情:

 <p ng-show="{{Modernizr.inputtypes.datetime-local}}">Modernizr says datetime-local is supported!</p>

但是,Modernizr 似乎不适用于 Angular 表达式。

是否可以在启动时将我感兴趣的所有 Modernizr 值放在根作用域中,以便它们可以用于表达式中,或者是否有更好的方法?

最佳答案

您可以将所有 Modernizr 放在 rootScope 上,它会起作用(注意 ng-show 中的 Modernizr.inputtypes.datetime-local 应该是 Modernizr .inputtypes.datetimeLocal)...

app.run(function ($rootScope) {
    $rootScope.Modernizr = Modernizr;    
});

但我的偏好是使用 constant() 使其可注入(inject),并仅在作用域上公开所需的属性,这样 View 就不会与 Modernizr 耦合...

app.constant("Modernizr", Modernizr);

app.controller("controller", function ($scope, Modernizr) {
    $scope.browser = {
        supportsDateimeLocalInput: Modernizr.inputtypes.datetimeLocal,
        supportsEmailInput: Modernizr.inputtypes.email
    };    
});

在 View 中...

<p ng-show="browser.supportsDatetimeLocalInput">
    Modernizr says datetime-local is supported!
</p>

JSFiddle

关于javascript - 具有 Modernizr 值的 Angular 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23769262/

相关文章:

java - 如何上传其中包含图像文件的表单,AngularJS spring

CSS 'lookbehind' 使用 sass/less

javascript - 使用 modernizr 在 ie 中测试指针事件

javascript - Bootstrap Validator 验证数字范围

javascript - 如何用 .each 替换标签内容

javascript - 在 Angular 中动态将 src 分配给图像

css - Modernizr 不给我的 CSS 渐变添加前缀

javascript - 不应允许用户使用 JavaScript 输入零作为第一个数字

javascript - Angular.js ui 路由器。元素仅对给定子元素可见

unit-testing - 指令内的单元测试 Angular 指令