我已经解决了其他问题,但找不到任何动态加载的控制器/视图。我仍然担心这可能是一个重复的问题,但我做了尽职调查并且空洞。如果你对搜索条件更好,请指出我正确的方向。
这就是我的应用程序的工作原理:我的索引页面加载了一个指向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>
我很乐意分享更多的代码,但我不想让这个太久,我觉得我只是错过了一些愚蠢的东西......
答案 0 :(得分:2)
乍一看,当您想要将该变量添加到userTitle
时,我注意到您正在制作一个名为$scope
的本地变量。
将$scope
注入homeController
和$scope.userTitle = 'test';
。这应该可以得到你想要的东西。