由于@符号,以下html会中断。除了不使用@符号之外,还有什么可以解决的问题。我必须使用@符号,因为json将使用xml中的newtonsoft jsonconvert http://www.newtonsoft.com/json在c#web api中生成。 jsonconvert在生成的json中使用@符号前缀xml属性。
如何解决@符号问题?对我有用的一件事是message.root.node1 [“@ attr1”]。如果可能,请提供一个资源,详细说明角度变量/表达式中禁止使用的符号。
<html ng-app="countryApp">
<head>
<meta charset="utf-8">
<title>Angular.js JSON Fetching Example</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script>
var countryApp = angular.module('countryApp', []);
countryApp.controller('CountryCtrl', function ($scope, $http) {
$scope.message = { "root": { "node1": { "@attr1": "1", "@attr2": "2" }, "node2": { "@attr1": "3", "@attr2": "4" } } }
});
</script>
</head>
<body ng-controller="CountryCtrl">
<h2>Angular.js JSON Fetching Example</h2>
<span>
menudatetime {{message.root.node1.@attr1}}
</span>
</body>
</html>
答案 0 :(得分:2)
使用22.+
。
它基本上是Angular的JavaScript表达式。 dependencies {
// compile `com.android.support:appcompat-v7:23.+`
compile `com.android.support:appcompat-v7:22.2.1`
}
无效javascript ...
答案 1 :(得分:1)
您可以切换到括号表示法作为解决方法:
<html ng-app="countryApp">
<head>
<meta charset="utf-8">
<title>Angular.js JSON Fetching Example</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script>
var countryApp = angular.module('countryApp', []);
countryApp.controller('CountryCtrl', function ($scope, $http) {
$scope.message = { "root": { "node1": { "@attr1": "1", "@attr2": "2" }, "node2": { "@attr1": "3", "@attr2": "4" } } }
});
</script>
</head>
<body ng-controller="CountryCtrl">
<h2>Angular.js JSON Fetching Example</h2>
<span>
menudatetime {{message.root.node1['@attr1']}}
</span>
</body>
</html>
答案 2 :(得分:1)
在这种情况下,您应该使用数组访问器(括号表示法):
<span>
menudatetime {{message.root.node1.["@attr1"]}}
</span>
关于表达式可以执行的文档及其限制,请转到Angular文档中的https://docs.angularjs.org/guide/expression。
答案 3 :(得分:0)
使用此
{{message.root.node1["@attr1"]}}
来自MDN:
括号表示法
get = object[property_name];
object[property_name] = set;
property_name是一个字符串。该字符串不必是有效的标识符;它可以有任何价值,例如&#34; 1foo&#34;,&#34;!bar!&#34;,甚至&#34; &#34; (空格)。
document['createElement']('pre');
这与上一个示例完全相同。