jade mixin与动态js对象变量作为属性

时间:2016-06-23 06:02:28

标签: javascript angularjs pug

我试图像这样用玉石调用mixin

    +projectInfo("assets/images/image.jpg",{{repository.project[projectId].unit}})
  

错误:Unexpected token { at Function (native) at assertExpression ...

我也尝试过这样:

+projectInfo("assets/images/image.jpg",repository.project[projectId].unit)
  

错误:Cannot read property 'project' of undefined

我做错了什么?

更新:mixin看起来像这样

mixin projectInfo(img, title)
    .container-fluid
        .col-xs-12.projectInfo
            .col-xs-12.img
                img(src= img)
            .col-xs-12.title
                h1= title

1 个答案:

答案 0 :(得分:0)

当您将AngularJS与Jade一起使用时,最好使用带有自己模板的指令(如果您愿意,也可以使用Jade提供)

你正在使用它的情况不是很正确,jade将被构建为html,在这个过程中,传递给mixin的值将用于绘制mixin模板而不是+mixinName(),并且如你所愿把动态值放在那里使用AngularJs方法是必要的:

angular.module('app.directives').directive('projectInfo', projectInfo);

function projectInfo() {
    return {
        restrict: 'AE',

        //build from jade template and contain {{info.title}}, {{info.img}}
        templateUrl: '/templates/myTemplate.html', 

        scope: {info: '='}
    };
}