$scope 值未在模型对话框中更新

$scope value is not updating in model dialog

我正在使用 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,当我点击 link 时,值应该是 222。 但是新的价值并没有出现在对话中。 我需要更改哪里?

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

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

在 Whosebug 中查看此解决方案:Share data between AngularJS controllers