Angular ui-bootstrap popover不会更改范围模型

时间:2017-12-12 14:32:02

标签: angularjs angular-ui-bootstrap

请有人知道为什么角度ui-bootstrap popover没有改变范围内的模型?

<button popover-placement="right" 
        uib-popover-template="'myPopoverTemplate.html'"
        type="button" 
        class="btn btn-default">Click me!</button>

....

<script type="text/ng-template" id="myPopoverTemplate.html">
    <div class="form-group">
        <label>Date:</label>
        <p class="input-group">
            <input type="text" 
            class="form-control" 
            ng-model="dataClonada" 
            datepicker-options="dateOptionsClone" 
            uib-datepicker-popup="{{formats[5]}}" 
            is-open="popup3"
            readonly="true"/>
            <span class="input-group-btn">
            <button type="button" class="btn btn-default" ng-click="popup3=true"><i class="glyphicon glyphicon-calendar"></i></button>
            </span>
        </p>
        <button class="btn btn-success" ng-click="show()">show value</button>
    </div>
</script>

我做了一个简单的傻瓜来说明情况。 https://plnkr.co/edit/ebYWI8hP0xtOboY2v37Z?p=preview

2 个答案:

答案 0 :(得分:1)

您需要更改

ng-model="dataClonada" 

ng-model="$parent.variable"

该指令(显然)正在创建一个新的子范围,因此您需要使用$parent来访问父范围并访问它的值(variable所在的位置)。

Fixed plnkr

答案 1 :(得分:1)

出于某种原因,它与双亲一起工作:

ng-model="$parent.$parent.variable"

可能是因为弹出窗口位于转发器内部吗?