AngularJS ng-show不起作用

时间:2015-05-14 17:26:07

标签: javascript angularjs ng-show

我有以下代码:

<header class="hero-unit" id="banner" ng-include="'components/header/header.html'"></header>

<div ng-include="'components/navbar/navbar.html'"></div>


<div class="container">
    <h3 class="site-headline">Opret nyt produkt</h3> <hr>
    <form> 
        <div class="container jumbotron">
            <div class="col-md-12">
                <select ng-model="selectedOption">
                    <option ng-repeat="option in options">
                        {{ option.name }}
                    </option>
                </select>

            </div>

            <div ng-show="selectedOption.name == Pool" ng-include="'components/new/new-pool.html'">test</div>

        </div>
    </form>
</div>

<footer class="footer" ng-include="'components/footer/footer.html'"></footer>

我试图在selectedOption == "Pool"时显示ng-include,但即使ng-show条件不正确,也会显示ng-include。

我已尝试" ==='Pool'"而没有',但似乎没有任何效果,我无法绕过它。

3 个答案:

答案 0 :(得分:3)

您正在比较selectedOption.name == Pool,恰好是undefined == undefined。由于您设置ng-select的方式,您只想比较:

selectedOption === 'Pool'

请参阅this simple plunk

答案 1 :(得分:1)

要么使select的模型为selectedOption.name,要么将条件设为ng-show="selectedOption == 'Pool'"您的条件是查找与为{{1}设置的变量不同的变量(selectselectedOption)。 (还要注意'Pool'周围的引号)

我不确定,但您可能需要为selectedOption.name元素提供值。

答案 2 :(得分:0)

我设法找到了我的问题

不知怎的,我设法创造了一个空间,所以它没有说

Pool

但它说

 Pool

从此改变:

<option ng-repeat="option in options">
    {{ option.name }}
</option>

对此:

<option ng-repeat="option in options">{{ option.name }}</option>

解决了我的问题。