带有转义元素的Angular指令+ RequireJS不起作用

时间:2017-01-10 12:59:20

标签: angularjs angularjs-directive angular-ui-router requirejs angular-ui

In this punk我正在尝试使用#include <stdio.h> #include <stdlib.h> int main(void){ char** command = malloc(sizeof(char*)*5); for(int i=0;i<5;i++){ *(command+i) = malloc(sizeof(char)*6); } //memory allocated for 5 rows and 6 columns 2D array for(int i=0;i<5;i++){ free(*(command+i)); } free(command); //memory is free for 5 rows and 6 columns 2D array return 0; } 和RequireJS的Angular指令。已转换的元素应包含在用户单击按钮时打开的Angular UI模式中。

代码使用transclude: true来显示视图,其中一个有一个按钮来打开模式。

This is a working example 没有使用RequireJS,您可以在Angular UI模式中看到被转换的元素。

使用RequireJS时,我在控制台中收到以下错误:

  

未知提供商:$ templateRequestProvider&lt; - $ templateRequest&lt; -   $ uibModal&lt; - modalDirective

缺少什么?

HTML

ui.router

config.js

<ul class="menu">
  <li><a href ui-sref="view1">Some content</a></li>
  <li><a href ui-sref="view2">Some modal</a></li>
</ul>

<div ui-view></div>

<script data-main="config" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js"></script>

start.js

require.config({
    paths: {
        'angular': 'https://code.angularjs.org/1.2.16/angular',
        'uiBootstrap' : 'https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.4.0/ui-bootstrap-tpls',
        'domReady': 'https://cdnjs.cloudflare.com/ajax/libs/require-domReady/2.0.1/domReady',
        "uiRouter": "https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router"
    },
    shim: {
        'angular': {
            exports: 'angular'
        },
        'uiBootstrap': { 
          exports: 'uiBootstrap', 
          deps: ['angular'] 
        },
        'uiRouter':{
            deps: ['angular']
        }
    },

    deps: [
        'start'
    ]

});

routes.js

define([
    'require',
    'angular',
    'app',
    'routes'
], function (require, angular) {
    'use strict';
    require(['domReady!'], function (document) {
        angular.bootstrap(document, ['app']);
    });
});

ctl.js

define(['app','ctl'], function(app) {

    'use strict';
    return app.config(function($stateProvider, $urlRouterProvider) {

        $urlRouterProvider.otherwise("/view1");

        $stateProvider.state('view1', {
              url: "/view1",
              templateUrl: "partial1.html"
            })
        .state('view2',{
            url: '/view2',
            templateUrl: 'partial2.html'
        });
    })
});

modal.js

define(['app','modal'], function (app) {

  'use strict';
  app.controller('ctl', function($scope) {
    $scope.open = function () {
        $scope.modalCtl.openModal();
    };
  });   
});

1 个答案:

答案 0 :(得分:1)

您在破碎的plunker中使用的ui-bootstrap版本(2.4.0)需要角度为1.3+ $templateRequest的服务。因此,它与角度1.2不兼容。

更新您的plunker中的Angular版本,它应该开始工作。 http://plnkr.co/edit/OXBbmWS9yiAfnxsiNHsP?p=preview