gpt4 book ai didi

javascript - AngularJS 在 ajax load() 函数之后将范围绑定(bind)到 html

转载 作者:行者123 更新时间:2023-11-30 15:03:09 24 4
gpt4 key购买 nike

阅读后我了解到通过 ajax 加载的 html 未绑定(bind)到我的 Angular 应用程序。我已经尝试了 1.000 种方法,但无法让“customers-invoice.html”理解 Angular 。任何想法将不胜感激。

<body ng-cloak ng-app="myApp">
<main id="main">
<div ng-controller='Ctrl'>
<a ng-click="openInvoice(data.invoiceRef)" class="btn">View</a>
</div>
</div>
</body>


var app = angular.module('myApp', []);
app.controller('Ctrl', function($scope, $compile) {
$scope.invoice = {}
$scope.openInvoice = function(ref) {
$scope.invoice.ref = ref;
var html = $('#main');
html.load('customers-invoice.html')
$compile(html)($scope);
}
}

最佳答案

在这种情况下,您可以使用 ng-include 指令,它会在指定的 DOM 中加载 html,并为您准备好已编译的 DOM 绑定(bind)。但是因为你想获得你的 Ctrl Controller 的绑定(bind),你必须把那个 DOM 放在 Ctrl controller div

里面
<body ng-cloak ng-app="myApp">
<main id="main">
<div ng-controller='Ctrl'>
<a ng-click="openInvoice(data.invoiceRef)" class="btn">View</a>
<div ng-include="templateUrl"></div>
</div>

</div>
</body>

代码

$scope.openInvoice = function(ref) { 
$scope.invoice.ref = ref;
$scope.templateUrl = 'customers-invoice.html';
}

关于javascript - AngularJS 在 ajax load() 函数之后将范围绑定(bind)到 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46198327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com