【发布时间】:2015-12-18 12:59:51
【问题描述】:
我定义了一个人对象(从后端加载),如下所示:
{
"PersonId":"19894711-2eb9-4edf-92c6-85de2b33d1bb",
"Firstname":"Jacky",
"Lastname":"Chan",
"DateOfBirth":"1963-09-18T00:00:00",
"CreateDate":"2015-12-11T09:15:49.403",
"ModifyDate":"2015-12-11T09:15:49.403"
}
使用此 HTML 代码可以正确显示:
<table>
<tr>
<td>Firstname</td>
<td>
<input type="text" ng-model="person.Firstname" class="form-control"/>
</td>
</tr>
<tr>
<td>Lastname</td>
<td>
<input type="text" ng-model="person.Lastname" class="form-control"/>
</td>
</tr>
</table>
但是,如果我将同样的对象传递给指令:
<address-displayer-directive person="person"></address-displayer-directive>
它不起作用。
这是指令的代码:
myApp.directive("addressDisplayerDirective", [
"addressService",
function (
addressService) {
return {
scope: {
person: "="
},
restrict: "E",
templateUrl: "/Templates/Directives/addressDisplayerDirective.html",
controller: [
"$scope",
function ($scope) {
console.log($scope.person);
$scope.addresses = addressService.GetForPerson($scope.person.Id);
}],
link: function ($scope, $elem, $attrs) {
console.log($attrs.person);
}
};
}]);
链接块中的console.log 显示"person"(作为字符串,而不是对象)。
控制器块上的console.log,显示undefined。
我尝试用Plunk 模拟它,但它可以工作。
有什么想法吗?
【问题讨论】:
-
这只是您在 关闭 HTML 标记中的
person="person"的错字吗?如果是这样,这绝对是错误的 -
是的,复制粘贴错误试图设置我的问题。事实并非如此......
标签: javascript jquery html angularjs asp.net-web-api2