angularjs ui-view不会替换部分玉模板

时间:2017-06-15 21:16:23

标签: javascript angularjs node.js express angular-ui-router

我是Angular的新手。我曾尝试从input元素中检索名称并显示它。我正在使用express和ui-router。

1:我的浏览器控制台没有错误,但ui-router模板没有显示。所以我的第一个问题是为什么templateUrl没有渲染。

2:我的浏览器元素中有<div id="mainApp" ui-view="" class="ng-scope"></div>,但没有为模板分配控制器。所以我的第二个问题是为什么ui-router controller(hello.client.controller.js)没有被调用。

请给我一些建议。

应用/视图/ index.jade

doctype html
    html
        head
            title= title
            link(href='css/main.css', rel='stylesheet')
        body
            div#mainApp(ui-view='')

            script(type='text/javascript', src='/lib/angular/angular.min.js')
            script(type='text/javascript', src='/lib/angular-ui-router/release/angular-ui-router.min.js')
            script(type='text/javascript', src='/modules/hello/hello.client.module.js')
            script(type='text/javascript', src='/modules/hello/config/hello.client.routes.js')
            script(type='text/javascript', src='/modules/hello/controllers/hello.client.controller.js')
            script(type='text/javascript', src='/modules/hello/filters/hello.client.filter.js')
            script(type='text/javascript', src='/application.js')

应用/路由/ partial.server.routes.js

module.exports = function(app) {
    var partial = require('../controllers/partial.server.controller');
    app.get('/modules/:module/views/:partial', partial.render);
};

应用/控制器/ partial.server.controller.js

exports.render = function(req, res) {
    res.render('.' + req.path);
};

公开/模块/你好/配置/ hello.client.routes.js

 angular.module('hello', ['ui-route'])
    .config(['$stateProvider',  function($stateProvider) {
        $stateProvider
            .state('hello', {
                url: '/',
                templateUrl: '/modules/hello/views/hello.client.view.jade'
            });
    }
]);

公开/模块/你好/控制器/ hello.client.controller.js

angular.module('hello').controller('HelloController', 
    function($scope) {
        $scope.yourName = 'No Name';
    }   
);

公开/ application.js中

var mainAppModuleName = 'Main'
var mainAppModule = angular.module(mainAppModuleName, ['ui.router', 'hello']);

angular.element(document).ready(function() {
    angular.bootstrap(document.querySelector('#mainApp'), [mainAppModuleName], {
        strictDI: true
    });
});

项目结构

  • MyProject的
    • 应用
      • 控制器
        • index.server.controller.js
        • partial.server.controller.js
      • 路由
        • index.server.routes.js
        • partial.server.routes.js
      • 的观点
        • index.jade
    • 配置
      • express.js
    • 公共
      • LIB
        • 角-UI-路由器
      • 模块
        • 你好
          • 配置
            • hello.client.routes.js
          • 控制器
            • hello.client.controller.js
          • 过滤器
            • hello.client.filter.js
          • 的观点
            • hello.client.view.jade
          • hello.client.module.js
        • 的application.js
    • server.js

0 个答案:

没有答案