0

我正在使用 angularjs 并打开引导模型。我想更新我的 $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。但是新值不会出现在对话框中。我需要在哪里改变?

4

1 回答 1

2

它不会更新,因为您正在使用两个控制器。即使它们具有相同的名称,它们也具有不同的作用域。这就是控制器第一个实例中的函数不会更新第二个实例中的值的原因。它们是不同的实例。

尝试与服务共享您的数据。您也可以尝试使用 $rootScope 或事件,但服务将是最好的方法。

在 StackOverflow 中查看此解决方案:在 AngularJS 控制器之间共享数据

于 2016-01-28T08:24:27.133 回答