带有requireJS的工具提示系绳

时间:2015-12-19 22:38:10

标签: javascript twitter-bootstrap requirejs tether

Bootstrap的最新测试版(v4)使用Tether js定位元素,我无法让它在我的Requirejs应用程序中运行。

在我的requirejs配置中我有以下垫片

paths: {
    jquery: '/path/to/jquery',
    tether: '/path/to/tether'
},
shim: { 
     'bootstrap': ['tether', 'jquery']       
}

当我想在我的应用中激活工具提示时,我使用以下代码,我认为是正确的

function page_events() {
    requirejs(['bootstrap'], function(bootstrap) {
        $('[data-toggle="tooltip"]').tooltip(); 
    }); 
}

这应首先加载bootstraps依赖项,然后再执行代码。所以通常应该在这段代码之前包含Tether。

但控制台结果是

  

未捕获的ReferenceError:未定义系绳

有没有人有同样的问题?

2 个答案:

答案 0 :(得分:7)

创建一个这样的脚本:

define(['lib/tether.min'], function(tether) {
    window.Tether = tether;
    return tether;
});

然后改变这个:

paths: {
    jquery: '/path/to/jquery',
    // tether: '/path/to/tether'
    tether: '/path/to/your-own-tether'
},
shim: { 
     'bootstrap': ['tether', 'jquery']       
}

为什么呢?因为浏览器需要这个:

window.Tether = tether; // May be both requirejs and tether didn't do this

答案 1 :(得分:0)

如果您希望Tether全局可用,则应使用脚本标记手动包含它。 RequireJS不公开它。

import java.util.List;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@Path ("/messages")
public class messages {
@GET
@Produces(MediaType.APPLICATION_XML)
public String getMessages (){
   String res =" test response ";
    return res ;
}