javascript - ng-show isArray 表达式

标签 javascript html angularjs

我只想在模型字段为数组时呈现 select 标记。我有这段代码:

HTML:

<div ng-app>
  <div ng-controller="showCrtl">
        <button class="" ng-click="showCon()">Button1</button>   
        <select ng-show="isArray(tabObj.foo)" ng-model="tabObj.foo" ng-options="x for x in tabObj.foo"></select>
        <span ng-if="!isArray(tabObj.foo)">{{tabObj.foo}}</span>
    </div>
</div>

JS:

function showCrtl($scope){
    $scope.showCon=function(){
        $scope.tabObj={'foo':['AA','BB']};
        alert("is field is Array? "+Array.isArray($scope.tabObj.foo));
    }
}

演示:http://jsfiddle.net/8Yz7S/722/

如您所见,单击按钮后,我只得到 spantabObj.foo 作为文本。 如何获取select标签?


如果我将 tabObj.foo 值更改为简单字符串 ('abc') 并使用 ng-show="tabObj.foo.length > 0" 检查我总是得到 select 标签(看不到 span)- 参见 http://jsfiddle.net/8Yz7S/726/

最佳答案

您的 ng-show="isArray(tabObj.foo)" 在 html 中不能像这样直接工作。您可以再创建一个变量并检查其值。

function showCrtl($scope){
$scope.test=false;
    $scope.showCon=function(){
           $scope.tabObj={'foo':['AA','BB']};
           $scope.test=Array.isArray($scope.tabObj.foo);
           alert("is field is Array? "+$scope.test);
    }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
    <div ng-controller="showCrtl">
            <button class="" ng-click="showCon()">Button1</button>   
            <select ng-if="test" ng-model="tabObj.foo" ng-options="x for x in tabObj.foo">
            </select>
            <span ng-if="!test">{{tabObj.foo}}</span>
    </div>
</div>

关于javascript - ng-show isArray 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675384/

相关文章:

javascript - 在 Javascript 中一个接一个地执行 2 个函数的有效方法

javascript - 使用 JavaScript 动态刷新 <img>

javascript - 我编写了在悬停时更改按钮的 Jquery 代码,但我为每个按钮分别编写了代码。我如何使它成为一个函数

javascript - 在下拉指令中动态添加 ng-click

javascript - Angular $http.jsonp() 方法只工作一次

javascript - ruby on Rails 无法正确加载 Node.js

javascript - 通过带有正则表达式的拆分函数拆分表情符号字符串

javascript - Angular 中的 JWT 表现不佳——出现无效 header 错误

javascript - 获取自定义事件的 "this"引用

html - 1 个像素会导致 Bootstrap 列溢出,还有如何使我的列大小动态化?