如何将数据馈送到AngularJS指令内的模式

如何将数据馈送到AngularJS指令内的模式,angularjs,angularjs-directive,angularjs-scope,widget,dashboard,Angularjs,Angularjs Directive,Angularjs Scope,Widget,Dashboard,我正在尝试编写一个自定义指令,该指令将“创建”一个仪表板小部件,包括: 标题(小部件的名称) 模式(数据建模或显示的方式,即它可以是注册的用户数-一个数字,也可以是一个字符串,显示大多数用户一周中的哪一天,等等) 数据(要提供给模式的数据、数字、字符串或从数据库或数据源获取的任何内容) 以下是我执行指令的程度: app.directive('widget', function () { return { restrict: 'E', scope: { title:

我正在尝试编写一个自定义指令,该指令将“创建”一个仪表板小部件,包括:

  • 标题(小部件的名称)
  • 模式(数据建模或显示的方式,即它可以是注册的用户数-一个数字,也可以是一个字符串,显示大多数用户一周中的哪一天,等等)
  • 数据(要提供给模式的数据、数字、字符串或从数据库或数据源获取的任何内容)
  • 以下是我执行指令的程度:

    app.directive('widget', function () {
    return {
        restrict: 'E',
        scope: {
            title: '@',
            schema: '&',
            data: '&'
        },
        template: '<div>' +
            '<span class="widget-title">{{title}}</span>' +
            '<div schema="schema()" data="data()"></div>' +
            '</div>'
    }})
    
    app.directive('widget',function(){
    返回{
    限制:'E',
    范围:{
    标题:“@”,
    架构:“&”,
    数据:“&”
    },
    模板:“”+
    “{{title}}”+
    '' +
    ''
    }})
    
    和我的html:

    <widget title="Number of users" options="numberWidget" data="userData">
    </widget>
    
    
    
    我一直在研究如何将数据“绑定”到模式,以及应该在哪里定义不同的模式(或小部件模型)。也许我的方法是错误的,所以一个小小的方向将非常感谢。如果需要,我可以提供更多信息

    编辑:
    这是一个关于我有多远以及我认为我能实现的目标的“我做的”,也许可以(或应该)做得不同。

    好的,所以我决定做得稍微不同于我认为有效的事情。以下是我的解决方案:

    指令: 该指令仅限于一个元素,并且具有一个独立的作用域,该作用域包含一些参数、
    '和'
    的数据,用于计算表达式(表达式在控制器中定义为如下所示的函数)和
    '@'
    的类和标题,用于计算字符串(这些字符串在下面显示的HTML中定义)

    CSS: CSS显然定义了HTML元素中使用的类,这取决于样式的偏好,但就我的示例而言,我将展示它们:

    .widget-title {
        //whatever you need
    }
    
    .number-widget {
        //whatever you need
    }
    
    .description {
        // whatever you need
    }
    

    我希望这能帮助某些人,也许有更好的方法,但这适合我的需要。

    什么是schema()和data()。它在控制器中吗???。据我所知,您只是试图将对象从视图范围绑定到指令范围。是吗?您能提供schema()和data()吗返回示例。最好为它创建一个代码笔(使用静态值)。我添加了一个示例,说明我与它有多远,因为我被卡住了,目前尚未完成,因此我写了这个问题。请检查我的编辑。
    <widget title-class="widget-title" 
            widget-title="Number of Users" 
            data="userData" 
            value-class="number-widget" 
            key-class="description">
    </widget>
    
    app.controller('dashboardCtrl', [
        '$scope', function ($scope) {
    
            $scope.userData = {
                key: 'Total Users',
                value: 100
            };
        }
    ]);
    
    .widget-title {
        //whatever you need
    }
    
    .number-widget {
        //whatever you need
    }
    
    .description {
        // whatever you need
    }