输入值未显示在引导程序弹出窗口内

时间:2017-07-27 09:43:20

标签: angularjs twitter-bootstrap popover

我有一个指令来显示一个bootstrap的popover,用户可以在其中更新一些值。问题是我的值不作为输入值显示(它是绑定,我可以编辑它)。在输入旁边的popover中可以看到相同的值。

HTML

exportPath = r'D:\Sunil_Work\temp8' + '\\Path.csv'
gzPath.to_csv(exportPath)    

JS

<div custom-popover popover-html="<div><span>{{costPrice}}</span><input type='text' ng-model='costPrice' /></div>"></div>

Demo

它当然只是整个项目的一部分,但它显示了问题。知道如何在输入中看到这个值吗?

1 个答案:

答案 0 :(得分:0)

我想我终于找到了问题所在。 您正在使用jquery进行弹出,因为使用带有角度的jquery代码不是一个好习惯 在您的情况下,您使用角度和ng模型的作用是持续观察元素值,如果它发生变化,则调用摘要周期以根据模型更新所有值,反之亦然。 所以,正如你已经将角度代码赋予jquery内容函数一样,如果你通过ui-bootstrap popover或任何其他有角度的第三方popovers实现它,你可以使角度停止观察你在popover中看到的costPrice你可以看到效果。这是代码,

&#13;
&#13;
<!doctype html>
<html ng-app="ui.bootstrap.demo">

<head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>

    <div ng-controller="PopoverDemoCtrl">

        <button style="margin:70px;" uib-popover-template="dynamicPopover.templateUrl" popover-placement="bottom-right" popover-title="{{dynamicPopover.title}}"
            type="button" class="btn btn-default">Popover With Template</button>

        <script type="text/ng-template" id="myPopoverTemplate.html">
            <div>{{dynamicPopover.content}}</div>
            <div class="form-group">
                <label>Popup Title:</label>
                <input type="text" ng-model="dynamicPopover.content" class="form-control">
            </div>
        </script>
        <script>
            angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
            angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope, $sce) {
                $scope.dynamicPopover = {
                    content: 'Hello, World!',
                    templateUrl: 'myPopoverTemplate.html',
                    title: 'Title'
                };
            });
        </script>
    </div>
</body>

</html>
&#13;
&#13;
&#13;

因为我说你给了带有角度代码的html到jquery来处理它而jquery无法处理角度代码所以你得到了错误。 希望这会有所帮助:)