1

以下は私のコントローラーコードです:

app.controller('HomeController', ['$scope', '$location', '$sce', '$routeParams', '$timeout', function($scope, $location, $sce, $routeParams, $timeout ) {
    // Configuration Variables:
    $scope.title = "Site Title";
    $scope.logosrc = "images/site_logo.gif";
    $scope.tagline = "This is the new tagline!!!";

    // This changes the shadowed aspect of the top nav and footer based on a checkbox
    $scope.shadowChange = function(cb){
        alert ("hi");
        return true;
    };

    // This converts any HTML code in the text to actual code so that it renders properly
    $scope.renderHtml = function(html_code)
    {
        return $sce.trustAsHtml(html_code);
    };

}]);

次のように、チェックボックスで onClick を使用して、コードで shadowChange 関数を呼び出します。

<input type="checkbox" name="shadow" id="shadow" checked onClick="shadowChange(this);" />

HomeController を body タグに関連付けるだけでなく、(念のため) HomeController を使用して関連するコードを別の div にラップしました。Chrome インスペクターは、HomeController が正常にロードされていることを教えてくれます。

さらに、コントローラーの上部にある構成変数が適切に設定されています。

それでも、チェックボックスをクリックすると、shadowChange が定義されていないというエラーが表示されます。そこにある他の関数 renderHtml を (テストのためだけに) 試しても、同じエラーが発生します。それでも、私の別のアプリケーションでは、同じ方法で使用しており、正常に動作します。

コードが関数を認識できない原因がわかりません。

考え?

4

1 に答える 1