我在使用角度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