我在使用角度js的引導模式上出現了一些問題,我想更好地理解爲什麼scope變量是不更新。我有一個頁面(我們稱之爲主頁面),它包含一個可供我選擇條目的下拉列表。
<p>@{{serv_id}}</p>
<select class="form-control" id="serv" ng-model="service_id" ng-change="selectServ()">
<option value="179">Serv 1</option>
<option value="180">Serv 2</option>
<option value="181">Ser 3</option>
</select>
<a href="" class="btn-getnum" data-toggle="modal" data-target="#remote-serv-modal">
Get this serv <span class="glyphicon glyphicon-save"></span>
</a>
當用戶選擇一個條目時,會觸發ng-change="selectServ()"
函數。這裏是該函數的代碼這是ng-controller="servController"
的一部分:
$scope.selectServ = function(){
serv_id = $('#serv').val();
$http.get('/serv/next-serv/' + serv_id).success(function(response){
setTimeout(function(){
$scope.serv_id = serv_id;
$scope.$apply()
$scope.selectServ();
}, 5000);
});
};
當用戶選擇一個條目,<p>@{{serv_id}}</p>
主頁上找到更新輸出。但是,在我的主頁中使用@include('modals.remote-queue-modal')
包含在我的模式中的範圍變量$scope.serv_id
不會更新。
這裏是一個正在另一個刀片發現模態代碼:
<div class="modal fade" id="remote-serv-modal" tabindex="-1" ng-controller="servController">
@{{serv_id}}
</div>
我不包括我的模式的所有代碼,但它有一個引導模式中的所有元素(對話框,標題和內容)。上面代碼的重要部分是它有一個ng-controller和scope變量。
我在做什麼錯?任何人都可以指出我的資源是非常感謝。
$ scope.selectServ()的用途是什麼。現在它真的沒有做任何事情。它創建一個http.get調用,但對返回數據沒有任何作用。它設置$ scope.serv_id等於$('#serv')。val(),因爲$('#serv')。val()與您的模型的一部分$ scope.service_id相同,所以這是不必要的。除此之外,你還沒有向我們展示你的模態的代碼,這是你認爲你的問題在哪裏。 – jbrown
擺脫bootstrap.js並使用angular-ui-bootstrap。並停止在控制器中使用jQuery。那裏不應該有DOM代碼。你的數據模型應該是驅動dom而不是其他方式 – charlietfl