Ich versuche eine Funktionalität zu schreiben, in der, wenn wir den Scope und die Vorlage übergeben, die angegebene Vorlage in einem jQuery UI Dialog mit allen funktionierenden Bindings aus dem angegebenen Bereich angezeigt werden soll.jQuery UI Dialog mit angularjs
Hier ist der Code:
HTML
<div id="mainDiv" ng-controller="myCtrl">
<input type="button" value="show dialog" ng-click="showTemplateDialog()" />
</div>
<script type="text/ng-template" id="dialogTemplate">
<div>
This is template div.
<span>Message: </span>
<p>{{message}}</p>
</div>
</script>
JS
var app = angular.module('myApp', []).controller('myCtrl', function($scope, $compile) {
$scope.showTemplateDialog = function() {
alert("hi")
var newScope = $scope.$new();
newScope.message = "This is some message";
$scope.showDialog(newScope, "dialogTemplate")
};
$scope.showDialog = function(dialogScope, template) {
var div = $("<div style='' id='dialog' title='Test Dialog' ng-include=\"'" + template + "'\"></div>");
$compile(div)(dialogScope);
$("#mainDiv").append(div);
div.dialog();
}
})
Das Problem ist, wenn ich div.dialog()
nennen, wirft es in jquery-ui.min.js
Unhandled exception at line 9, column 26027 in http://localhost/TestApp/scripts/jquery-ui.min.js
0x800a138f - JavaScript runtime error: Unable to get property 'display' of undefined or null reference
Bitte schlagen Sie eine Möglichkeit vor, um diesen Fehler zu beheben. Oder schlagen Sie eine andere Möglichkeit vor, um html/template in jQuery dialog mit angularjs anzuzeigen.
BTW, haben Sie einen HTML-Syntax-Fehler am Eingangselement. –