У меня есть HTML-страница с различными разделами, которые загружаются с помощью AJAX. Я создал контроллер для каждого из разделов.bind controller on dynamic HTML
Как можно связать контроллер с разделом, который динамически добавлен в HTML?
Я нашел очень сложные решения, которые я даже не знаю, применимы ли они.
Мне нужно самое простое, простое решение, что-то похожее на ko.applyBindings($dom[0], viewModel)
для тех, кто работал с KnockoutJs
.
Индекс HTML
<div class="row" ng-app="app">
<div class="col-xs-3">
<ul class="nav nav-pills nav-stacked">
<li>
<a href="#/profile">Profile</a>
</li>
</ul>
</div>
<div class="col-xs-9">
<div id="container"><!-- load dynamic HTML here --></div>
</div>
</div>
Dynamic HTML
<div ng-controller="profile">
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}
</div>
Javascript:
var app = angular.module('app', []);
app.controller('profile', function ($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
// load new HTML
// normally this is triggered by a link/button
$(function() {
$.get("/EditProfile/Profile", function (data, status) {
$("#container").html(data);
});
});
Ответ на этот вопрос - http://stackoverflow.com/questions/18157305/angularjs-compiling-dynamic-html-strings-from-database - очень хорошее решение этой проблемы. – FrailWords