【问题标题】:AngularJS ng-click doesnt work from partial viewAngularJS ng-click 在部分视图中不起作用
【发布时间】:2014-02-26 16:24:22
【问题描述】:

我想在不向地址行插入内容的情况下创建分步操作。 我偶然发现了一个问题。

这是我的父页面:

<html ng-app="Steps">
<head>
    <script src="../../Content/script/angular.js"></script>
    <script src="../../Content/script/jquery-1.7.1.js"></script>
    <script src="../../Content/script/Partials2.js"></script>
    <link rel="stylesheet" href="../../Content/css/bootstrap.css"/>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body ng-controller="StepCtrl">
    <div id="container" ng-template-controller-action="Steps/StepOne">
    </div>
</body>
</html>

我的js:

var step = angular.module("Steps", []);

step.directive("ngTemplateControllerAction", function ($compile, $http) {
    return {
        link: function ($scope, element, attrs) {
            $http({ method: "GET", url: attrs.ngTemplateControllerAction }).
            success(function (data) {
                $(element).html($compile(data)($scope));
            });
        }
    };
});

step.controller("StepCtrl", function ($scope) {
    $scope.goToSecondStep = function () {
        console.log(1);
    };

    $scope.goToFirstStep = function () {
        console.log(1);
    };
});

局部视图1:

<div>First step</div>
<button class="btn" ng-click="goToSecondStep()">Second Step</button>

局部视图2:

<div>Second step</div>
<button class="btn" ng-click="goToFirstStep()">First Step</button>

所以,当我单击第二步按钮时,我想在控制台中看到“1”,但没有任何反应。我做错了什么?

谢谢。

【问题讨论】:

    标签: jquery asp.net-mvc angularjs


    【解决方案1】:

    不确定,但可以使用 ng-include 轻松完成

    <div id="container" ng-include="pathToTheViewOnServer"> </div>

    pathToTheViewOnServer可以在范围内设置

    $scope.pathToTheViewOnServer = Steps/StepOne;

    或者直接在ng-include中提供路径

    <div id="container" ng-include="'Steps/StepOne'"> </div>

    【讨论】:

    • 但是我如何编译局部视图?问题是为什么 ng-click="goToSecondStep()" 不起作用。
    • 使用 ng-include 包含的部分视图会自动编译。
    • 有点问题。第一个部分视图加载正确。当我单击“$scope.pathToTheViewOnServer”的按钮值时,会发生变化。但什么也没有发生。我仍然看到第一个部分视图。
    • 所以...我发现 $scope 有问题。在我的部分观点中,有自己的控制器。但是观察者等待变量从它的作用域发生变化。这就是为什么什么都没发生...仍在寻找如何更改内部控制器内部的外部变量的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多