-1
所以我包括blog.html這是一個帖子列表,但當我嘗試更改blog.html中的活動變量似乎範圍已更改?範圍內更改包括html
當我點擊其中一個帖子時,測試點A將保持不變,但測試點B會改變。
發生了什麼事?我怎樣才能使它工作?
的index.html
<body ng-app="myApp" ng-controller="myController">
<nav id="mainNav">
<ul>
<li><a ng-click="active = 'views/blog.html'">Blog</a></li>
<li><a ng-click="active = 'views/about.html'">About</a></li>
<li><a ng-click="active = 'views/controlPanel.html'">Control Panel</a></li>
</ul>
</nav>
<div>
<div ng-include="active"></div>
</div>
{{active}} //Testing point A
</body>
blog.html
<ul id="posts">
<li class="post" ng-repeat="post in posts">
{{active}} //Testing point A
<a ng-click="active = 'views/about.html'">
<img src="{{post.image}}" />
<div class="text">
<h2>{{post.title}}</h2>
<p class="date">{{post.date}}</p>
</div>
</a>
</li>
</ul>
的script.js
angular.module('myApp', []).controller('myController', function ($scope, $http) {
$scope.active = 'views/blog.html';
$http.get("data.json").then(function (response) {
$scope.posts = response.data.posts;
});
});
'ng-include'是一個有自己範圍的指令。您需要創建一個組件或指令 – Hoyen
@Hoyen,如果您使用angularjs <1.6,則需要使用組件。在您的控制器和您的組件之間共享您的數據。 – nevradub