小编Pau*_*scu的帖子

AngularJS如何使用SVG小部件绑定数据

我知道这通常不是使用AngularJS的方法,但我想知道我想要实现的是否可以使用AngularJS.如果这不是推荐的方式,请提供有关如何实现这一目标的提示?请考虑我是网络编程领域的新手.

所以在我的项目中,我使用SVG和RaphaelJS在画布上绘制了几个小部件,这些小部件位于"holder"div中.我试图使用AngularJS将这些小部件绑定到数据,基本上每个小部件都链接到CustomController中的对象.初始化我的小部件时如何访问CustomController?

<html lang="en" style="height: 100%;"  ng-app="myApp">
<head>
  <script type="text/javascript"">
    $(document).ready(function () {
      var canvas = Raphael('holder', '800', '600');
      var widget1 = new Widget1(params);
      // initialize widgets here, that I need to bind to data using AngularJS
      // I am not able to access the CustomController here when drawing my widgets
    });
  </script>
</head>
<body>
  <div id="holder" ng-controller="CustomController">

  </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

无论如何使用AngularJS实现对SVG小部件的数据绑定?我开始认为这不是AngularJS的目的..在这种情况下你能告诉我如何做到这一点吗?

更新:

伙计们非常感谢您的回答!要求是小部件接受用户输入,并且我希望它不被放置在html文件中(出于模块化目的).因此该指令似乎是目前的主要选择.在链接方法中,我将使用RaphaelJS绘制窗口小部件,我也可以绘制可编辑对象,但这样我就不能正确使用AngularJS绑定机制,它只是手表和事件处理程序......这对我来说似乎很麻烦.如果某种方式我可以将SVG标签放在指令的模板属性中并且在模板中进行操作,那将是很好的,但似乎不支持.

你们对此有其他想法吗?

顺便说一下,有什么方法可以在属性和使用jQuery获得的HTML元素(例如文本框)之间以编程方式应用绑定?

问候

data-binding svg widget raphael angularjs

9
推荐指数
1
解决办法
1万
查看次数

KendoUI表+ AngularJS

我正在尝试使用AngularJS实现数据绑定的通用表小部件(使用KendoUI).表格小部件在HTML文件中看起来像这样(在这里小提琴:http://jsfiddle.net/mihaichiritescu/ULN36/35/):

<div ng:controller="Tester">
    <gridview>
        <div data-ng-repeat="man in people">
            <gridviewcolumn datasource="name" man="man"></gridviewcolumn>
            <gridviewcolumn datasource="age" man="man"></gridviewcolumn>               
        </div>            
    </gridview>
</div> 
Run Code Online (Sandbox Code Playgroud)

基本上,表格将有一个ng-repeat,它将在对象列表中重复,对于每个对象,使用'gridviewcolumn',我会在每一行下添加单元格.这样,我试图复制KendoUI表的结构,这是这样的:

??<div id="grid">
<div class="k-grid-header"></div>
<div class="k-grid-content">
    <table>
        <colgroup></colgroup>
        <tbody>
            <tr>
                <td></td>
                <td></td>                
            </tr>          
        </tbody>
    </table>
</div>
<div class="k-pager-wrap k-grid-pager"></div>
<div>?????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

因此,使用ng-repeat,对于每个对象,我将动态添加一个新行,对于每个列,我将在最后添加的行上添加一个新单元格.不幸的是,我无法以这样的方式操纵ng-repeat指令,我将正确地复制KendoUI网格视图的内部结构.我最终得到一个内部表结构,如下所示:

?<div id="grid">
<div data-ng-repeat="man in people" class="ng-scope">
    <div datamember="name" man="man" class="ng-binding">name1</div>
    <div datamember="age" man="man" class="ng-binding">21</div>
</div>
<div data-ng-repeat="man in people" class="ng-scope">
    <div datamember="name" man="man" class="ng-binding">name2</div>
    <div datamember="age" man="man" class="ng-binding">25</div>
</div>
<div class="k-grid-header"></div>
<div class="k-grid-content">
    <table>
        <colgroup></colgroup>
        <tbody> …
Run Code Online (Sandbox Code Playgroud)

html data-binding html-table kendo-ui angularjs

9
推荐指数
1
解决办法
1万
查看次数

应用包过滤时,Google Guice&Jersey将多个URL模式应用于同一个servlet

我正在尝试使用Jersey和Google Guice 3.0将2种不同的URL模式映射到同一个servlet,并将这些URL模式中的每一个应用于我项目中的不同包.

为了清楚起见,我正在粘贴下面的部分代码,我也会解释.

web.xml中

<listener>
    <listener-class>com.abc.web.listeners.GuiceContextListener</listener-class>
</listener>
<filter>
    <filter-name>guiceFilter</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>guiceFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

GuiceContextListener

public final class GuiceContextListener extends GuiceServletContextListener {
...
    private JerseyServletModule getJerseyServletModule() {
        JerseyServletModule jerseyModule = new JerseyServletModule() {
            @Override
            protected void configureServlets() {
                filter("/*").through(WebServerStateFilter.class);
                final Map<String, String> params = new HashMap<String, String>();
                StringBuilder sb = new StringBuilder();
                sb.append("com.abc.web.stats.services");
                params.put(PackagesResourceConfig.PROPERTY_PACKAGES, sb.toString());
                serve("/api/v1/*").with(GuiceContainer.class, params);

                final Map<String, String> params1 = new HashMap<String, String>();
                StringBuilder sb1 = new StringBuilder();
                sb1.append("com.abc.web.stats.otherservices");
                params1.put(PackagesResourceConfig.PROPERTY_PACKAGES, sb1.toString());
                serve("/api/*").with(GuiceContainer.class, params1);
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java url jetty jersey guice

6
推荐指数
1
解决办法
1371
查看次数

标签 统计

angularjs ×2

data-binding ×2

guice ×1

html ×1

html-table ×1

java ×1

jersey ×1

jetty ×1

kendo-ui ×1

raphael ×1

svg ×1

url ×1

widget ×1