使用双花​​括号{{}}

时间:2015-12-03 17:12:06

标签: javascript angularjs angularjs-scope curly-brackets

我的控制器中有一个JSON数组,我想通过使用ng-repeat几次使用我创建的指令来生成。每次通过调用模板中的特定指令函数将数组中的数据传递给指令。我能够完美地获得我的字符串,但因为生成的模板必须是一些HTML代码,Angular并不能解释它。

如果我改变

    template: '< div ng-bind="getTemplate(thiselem)">< /div>',

    template: '< div ng-bind-html="getTemplate(thiselem)">< /div>',

(我在&#34之前添加了一些空格; div&#34;关键字也允许显示html代码)

我的项目中已经执行了我的HTML部分,但是通常使用大括号之间的所有数据都不会被解释(应该返回undefined或null)。如何才能访问这些数据和/或使指令模板正确生成结果?

我已经完成了plunker来向您展示我的问题。

非常感谢你。

2 个答案:

答案 0 :(得分:0)

您可以插入指令中使用的字符串。请注意,我正在向变量$ interpolate注入变量。以下是Angular网站的官方文档:AngularJS: API: $interpolate

public static string GetPatientName(int bedNumber)
{
        var name = "";

        using (var data = new HospitalDBDataContext())
        {
             if (data.Connection.State == ConnectionState.Closed) 
               data.Connection.Open();

             name = data.Patients.Where(x => x.BedNumber.Equals(bedNumber))
                                 .Select(x => x.Firstname).ToString();

            if (data.Connection.State == ConnectionState.Open) 
               data.Connection.Close();

            data.Dispose();
        }

        return name;
}

答案 1 :(得分:0)

您将getTemplate()函数的结果视为字符串,包括传递的对象。你只需要使用它的实际值:

link: function(scope, element, attrs) {
    scope.getTemplate = function(thiselem) {
        return '<h1>' + thiselem.id + ':' + thiselem.name + 'tt</h1>';
    }
}

以上是这个问题:http://plnkr.co/edit/N5ziwjSRDWDMEWAH9ODl?p=preview