簡體   English   中英

使用AngularJS時是否應該刪除ASP.NET登錄名和共享視圖?

[英]Should the ASP.NET Login and Shared Views be Removed when Using AngularJS?

我已經審查了許多使用ASP.NET MVC 5,EF和AngularJS的代碼示例。 根據代碼的時代,我看到了包含共享視圖的示例,例如index.cshtml,還看到了運行index.html的示例。

在我的應用程序中,我需要通過訪問令牌到我們的Web API 2中對用戶進行身份驗證,並且還需要使用第三方社交登錄名。 鑒於需要與ASP.NET Identity交互以處理登錄名,可以拋棄樣板ASP.NET共享視圖嗎? 是否還應刪除樣板帳戶視圖? 最后,我定義了一個用於主頁的WelcomeController,如下所示:

function WelcomeController($scope, $location, authService, ngAuthSettings){
  var vm = this;
  activate();

  function activate() { }
}

我從index.cshtml調用它,如下所示:

<body class="container">
<div data-ng-controller="WelcomeController" id="home">
    <div ng-include="~/Scripts/app/appnav.html"></div>
    <div class="container">
        <div data-ng-view="">
            <div ng-include="~/Scripts/app/login.html"></div>
            <div ng-include="~/Scripts/app/signup.html"></div>
            <div ng-include="~/Scripts/app/welcome.html"></div>
        </div>
     </div>
   </div>
 </body>

當我運行該應用程序時 ,Facebook身份驗證后在瀏覽器中加載空白頁面,並顯示以下錯誤:

Uncaught Error: [$injector:nomod]

我的app.js文件包含以下內容:

(function () {
'use strict';

var app = angular.module('app', ['ngResource', 'ngRoute', 'app.video','app.applications', 'app.login', 'app.signup']);

app.config(['$routeProvider', function ($routeProvider) {

    $routeProvider.when('/welcome', {
        templateUrl: 'app/welcome.html',
        controller: 'WelcomeController',
        controllerAs: 'vm',
        caseInsensitiveMatch: true
    });
    $routeProvider.when('/applications', {
        templateUrl: 'app/applications/application.html',
        controller: 'ApplicationsController',
        controllerAs: 'vm',
        caseInsensitiveMatch: true
    });
    $routeProvider.when('/video', {
        templateUrl: 'app/video/videos.html',
        controller: 'VideoController',
        controllerAs: 'vm',
        caseInsensitiveMatch: true
    });
    $routeProvider.when('/login', {
        controller: 'LoginController',
        templateUrl: 'app/login.html'
    });

    $routProivder.when('/signup', {
        controller: 'SignUpController',
        templateUrl: 'app/signup.html'
    });

    $routeProvider.when('/refresh', {
        controller: 'RefreshController',
        tempalateUrl: 'app/refresh.html'
    });

    $routeProvider.when('/token', {
        controller: 'TokenManagerController',
        templateUrl: 'app/token.html'
    });

    $routeProvider.otherwise({
        redirectTo: '/welcome'
    });
}]);

app.config(function ($httpProvider) {
    $httpProvider.interceptors.push('authInterceptorService');
});

我認為根本原因是Angular IndexController配置不正確,或者ASP.NET MVC登錄代碼引起沖突。 需要有關最佳分辨率的一些指導,代碼示例將不勝感激。

如果用未縮小的Angular替換縮小的Angular,它會說:

在此處輸入圖片說明

這是因為app.js定義angular.module('app', [])函數根本就不會被調用(在代碼中可以看到)。

還有其他問題:Angular的縮小JavaScript包含有關縮小失敗的錯誤消息,並且Angular被包含兩次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM