gpt4 book ai didi

javascript - 隔离范围变量在链接函数内未定义

转载 作者:行者123 更新时间:2023-11-27 23:54:39 25 4
gpt4 key购买 nike

我有一个指令,用于接收数据对象和其隔离范围的函数。在链接函数中,我声明了一个范围方法以在特定事件(按钮单击)中触发。

问题是传递给上述方法的值在其中可用,但范围变量仍然未定义

指令:

commentsModule.directive('commentsDirective', [ function() {
return {
restrict: 'E',
templateUrl: '/alarm-viewer-comments-template.html',
scope: {
alarmComments: "=value",
sendNewComment: "&sendNewComment"
},
link: function(scope, elems, attrs, ngModelCtrl) {
scope.sendComment = function(data) {
console.log(scope.newComment);//this newComment variable is undefined
scope.sendNewComment(data);//data is correct
scope.newComment = '';
};
}
}
}
]);

在链接函数内部,传递到 scope.sendCommentdata 可用,但 scope.newComment 得到 undefined >。模板:

<h4>Comments</h4>
<div ng-repeat="comment in alarmComments.comments">
<p>{{comment.timestamp}} | <strong>{{comment.user}}</strong>: {{comment.commentType}} {{comment.comment}}</p>
</div>
<div ng-if="alarmComments.editPermission && alarmComments.isActiveAlarm">
<form name="commentsForm" role="form" track-form>
<input type="text" ng-model="newComment" pattern="/.{1,}" maxlength="4" required ng-enter="sendComment(newComment)"/>
<button type="button" class="btn btn-primary" ng-disabled="commentsForm.$invalid" ng-click="sendComment(newComment)">Send</button>
</form>
</div>

用户界面:

<comments-directive value="alarmComments" send-new-comment="addNewComment(comment)"></comments-directive>

有人可以帮我吗...?

编辑:我想要的是在输入评论后清除输入文本字段。

最佳答案

在指令范围内,您还应该映射 newComment 属性以及 alarmComments。就像下面一样 -

scope: {
alarmComments: "=value",
newComment: "=newComment",
sendNewComment: "&sendNewComment"
},

关于javascript - 隔离范围变量在链接函数内未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com