我正在使用angularjs并打开bootstrap模型。我想更新我的$ scope变量,并希望在模型中显示它。但是,新的价值并没有出现在模型上。 我的代码是,
查看,
<li ng-controller="QuickViewController">
<a href="javascript:void(0)" ng-click="OpenQuickView(value.productId)" data-toggle="modal" data-target="#myModal"></a>
渲染对话框,
<div>
@Html.Raw(File.ReadAllText(Server.MapPath("~/Views/Product/QuickView.html")))
</div>
对话视图,
<div ng-controller="QuickViewController" class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
{{test1}}
content should come
</div>
我的控制器,
function QuickViewController($scope, $http) {
$scope.test1 = "111";
$scope.OpenQuickView = function (ProductId) {
$scope.test1 = "222";
}
}
app.controller('QuickViewController', QuickViewController);
默认情况下,$ scope.test1为111,当我点击链接时,值应为222。 但新的价值并没有出现在对话中。 我需要在哪里更改?
答案 0 :(得分:2)
它不会更新,因为您使用的是两个控制器。即使它们具有相同的名称,它们也具有不同的范围。这就是控制器的第一个实例中的函数不会更新第二个中的值的原因。它们是不同的实例。
尝试与服务共享您的数据。 您也可以尝试使用$ rootScope或事件,但服务将是最好的方法。
在StackOverflow中检查此解决方案:Share data between AngularJS controllers