无法访问在JavaScript模型的性能 [英] Cannot access properties of model in javascript

查看:109
本文介绍了无法访问在JavaScript模型的性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在这里提几点建议然而似乎没有什么工作,我似乎无法访问该模型的属性。这是我迄今为止

  VAR widgetModel ='@ Html.Raw(Json.En code(Model.widgets))';
                [] .forEach.call(widgetModel,功能(部件){
                    VAR模板= document.querySelector('#面板模板');
                    VAR panelTitle = template.querySelector('面板的标题。');
                    panelTitle.textContent = widget.WidgetName;
                });

下面是呈现widgetmodel
http://gyazo.com/4a960969d9bedbd71efb1dac9b99c7e6

我也试图访问这个样子,但是似乎没有被挂在小部件变量的任何属性。

 为(VAR I = 0; I< widgetCount的;我++){
                        VAR部件=部件[I]
                        VAR模板= document.querySelector('#面板模板');
                        VAR panelTitle = template.querySelector('面板的标题。');
                        panelTitle.textContent = widget.WidgetName;
                    }


解决方案

混合javascript和剃刀要求您环绕你的剃须刀的呼叫与任何code座

@ {...} @if(条件){}

和把code本身一个转义序列

@:<文字和GT; 标签

所以,知道这一点,你可以这样做

  @ {
        <文字和GT;
            VAR widgetModel ='@ Html.Raw(Json.En code(Model.widgets))';
        < /文字和GT;
     }

请参阅混合剃刀和Javascript code 和<一个HREF =htt​​p://stackoverflow.com/questions/4599169/using-razor-within-javascript>使用javascript 内剃须刀

I have tried a few suggestions on here however did not seem to work, I cannot seem to access the properties of the model. This is what I have so far

var widgetModel = '@Html.Raw(Json.Encode(Model.widgets))';
                [].forEach.call(widgetModel, function (widget) {
                    var template = document.querySelector('#panel-template');
                    var panelTitle = template.querySelector('.panel-title');
                    panelTitle.textContent = widget.WidgetName;
                });

Here is the rendered widgetmodel http://gyazo.com/4a960969d9bedbd71efb1dac9b99c7e6

I have also tried to access it like this, however there doesn't seem to be any properties hanging off the widget variable.

for (var i = 0; i < widgetCount; i++) {
                        var widget = widget[i];
                        var template = document.querySelector('#panel-template');
                        var panelTitle = template.querySelector('.panel-title');
                        panelTitle.textContent = widget.WidgetName;
                    }

解决方案

Mixing javascript and Razor requires that you surround your Razor call with any code block

@{ ... } or @if(condition){}, etc.

and putting the code itself in an escaped sequence

@: or the <text> tag.

So, knowing this, you can do something like

@{
        <text>
            var widgetModel = '@Html.Raw(Json.Encode(Model.widgets))';
        </text>
     }

See Mix Razor and Javascript code and using razor within javascript

这篇关于无法访问在JavaScript模型的性能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆