javascript - AngularJS 条件 ngStyle 不适用

标签 javascript html angularjs conditional-statements directive

我试图通过使用 ng-style 有条件地设置输入宽度来响应 AngularJS 范围变量。我已经让它与文本对齐完美配合,但由于某种原因,它不适用于宽度...

HTML:

<body ng-app="vfApp">
    <!--This works...  --> <input resize ng-style="{ 'width' : '100%' }" type="text"/>
    <!--This does not?!--> <input resize ng-style="{ 'width' : doResize ? '100%' : '10%' }" type="text"/>
</body>

JS:

var vfApp = angular.module('vfApp', []);
vfApp.directive('resize', function () {
    return function ($scope) {
        $scope.doResize = false;
    };
});

编辑: 这与建议的可能重复不同,因为我没有尝试应用静态 CSS 类,而是尝试使用变量有条件地应用内联样式。

最佳答案

我发现您正在使用 Angular 1.0.1。您可以使用这个:

ng-style="doResize && {'width':'100%'} || {'width':'10%'}"

请参阅下面的演示:

var vfApp = angular.module('vfApp', []);
vfApp.directive('resize', function($window) {
  return function($scope) {
    $scope.doResize = true;
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>

<body ng-app="vfApp">
  <!--This works...-->
  <input resize ng-style="{ 'width' : '100%' }" type="text" />
  <!--This does not?!-->
  <input resize ng-style="doResize && {'width':'100%'} || {'width':'10%'}" type="text" />

  <br/>isMobile value: {{doResize}}

</body>

关于javascript - AngularJS 条件 ngStyle 不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645310/

相关文章:

javascript - 如何将 Canvas 的原点更改为中心?

angularjs - 使用缓存 View false 进行特定转换

php - 如何在 PHP 中显示和插入 Angular 数组数据?

javascript - 带有 AngularJS 的数据表 $http.get

javascript - 为什么我无法使用 jQuery 获取此输入字段的值?

html - 如何在使用 DITA-OT 3.0.4 转换的 html5 中覆盖默认 css?

html - 如何在移动设备上显示具有长选项值的下拉列表?

angularjs - 如何通过 Express 路由到多个 Angular 应用程序?

javascript - 使用 Jquery 创建新 DOM 元素的最佳方法

javascript - 如何根据td选择tr