AngularJS - 表达式不在HTML

时间:2017-06-02 17:19:06

标签: javascript html angularjs

我已经解决了其他问题,但找不到任何动态加载的控制器/视图。我仍然担心这可能是一个重复的问题,但我做了尽职调查并且空洞。如果你对搜索条件更好,请指出我正确的方向。

这就是我的应用程序的工作原理:我的索引页面加载了一个指向main.js文件的RequireJS,该文件概述了初始包含(app.js,routeResolver和数据服务(当前未使用).routeResolver允许我动态使用以下代码在app.js中加载我的视图和相应的控制器(使用一致的命名约定,在home.html中传递'home'加载并将其与来自各自控制器/视图位置的homeController.js相关联。)不需要使用ng-app ='appname',因为它是在运行时通过调用app.js文件中的angular.bootstrap()添加的。

//Define routes - controllers will be loaded dynamically
var route = routeResolverProvider.route;
$routeProvider
  .when('/', route.resolve('home'))
  .when('/createnew', route.resolve('createnew'))

在我的控制器中,我正在从sessionStorage加载变量。 (我已经确认它存在/可用。测试警报正确显示。)我的问题是它没有显示在html页面上,并且控制台不会产生任何错误。我已经确认页面正在准确地与控制器关联,因为如果我删除表达式,我会收到一个错误,它没有定义...但是尽管它包含一个值,它仍然不会显示。我得到的只是'欢迎'。

控制器:

'use strict';

define(['app'], function (app) {
    var injectParams = ['$location', '$filter', '$window', '$timeout'];

    var homeController = function ($location, $filter, $window, $timeout) {
          var userTitle = sessionStorage.getItem('userTitle');
          alert(userTitle);
    };

    homeController.$inject = injectParams;
    app.register.controller('homeController', homeController);
});

查看:

<div class="container-fluid text-center">
     <div class="row content">
          <div class="col-sm-2 sidenav">
               <p><a href="#">Placeholder</a></p>
          </div>
          <div class="col-sm-8 text-left">
               <p>Welcome {{ userTitle }}</p>
          </div>
          <div class="col-sm-2 sidenav">
               <div class="well">
                    <p>Placeholder</p>
               </div>
               <div class="well"></div>
          </div>
     </div>
</div>

我很乐意分享更多的代码,但我不想让这个太久,我觉得我只是错过了一些愚蠢的东西......

1 个答案:

答案 0 :(得分:2)

乍一看,当您想要将该变量添加到userTitle时,我注意到您正在制作一个名为$scope的本地变量。

$scope注入homeController$scope.userTitle = 'test';。这应该可以得到你想要的东西。