Ich arbeite vor kurzem an uib-popover, ich habe ein problem gefunden, mit dem ich verwirrt bin.winkel-uib-popover-template bidirektionale eingabe
Ich möchte eine Vorlage popover, in dieser Vorlage habe ich eine Eingabe, zunächst die Eingabe haben Anfangswert.
Ich möchte den Inhalt in Echtzeit basierend auf der Eingabe aktualisieren. Wenn ich nur eine Variable binde, funktioniert sie nicht. Wenn ich ein Objekt binde, funktioniert es. Ich kann dieses Problem nicht herausfinden.
index.html
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-sanitize.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.4.0.js"></script>
<script src="example.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div ng-controller="PopoverDemoCtrl">
<hr/>
<hr/>
<hr/>
<button uib-popover-template="'myPopoverTemplate.html'" popover-placement="bottom-left" type="button" class="btn btn-default">Popover With Template</button>
{{dynamicPopover.title}}
<script type="text/ng-template" id="myPopoverTemplate.html">
<div class="form-group">
<input type="text" ng-model="dynamicPopover.title" class="form-control">
</div>
</script>
<button uib-popover-template="'inputContent.html'" popover-placement="bottom-left" type="button" class="btn btn-default">Popover With Template</button>
{{inputContent}}
<script type="text/ng-template" id="inputContent.html">
<div class="form-group">
<input type="text" ng-model="inputContent" class="form-control">
</div>
</script>
</div>
</body>
</html>
example.js
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function($scope, $sce) {
$scope.dynamicPopover = {
title: 'Title'
};
$scope.inputContent = "hello";
});
Hier ist die Plunker Beispiel https://plnkr.co/edit/IPXb5tddEPQPPAUrjdYx?p=preview, Sie haben einen Versuch könnte.
Ich denke, das liegt daran, Variablen sind durch Wert gebunden und Objekte sind durch Referenz in Javascript gebunden. Was ist das Problem mit der Bindung an das Objekt? –
Sie [kann keine 2-Wege-Bindung mit Primitiven haben] (http://stackoverflow.com/questions/38078884/two-way-binding-on-primitive-variables-in-angularjs-directive) – RamblinRose
@big_water ich gerade möchte herausfinden, warum es nicht an eine Variable binden kann. –