这是我的plnkr:
http://plnkr.co/edit/n8cRXwIpHJw3jUpL8PX5?p=preview你必须点击一个li元素,将出现窗体。输入随机字符串并点击“添加通知”。而不是textarea文本,你会得到未定义。
标记:
<ul> <li ng-repeat="ticket in tickets" ng-click="select(ticket)"> {{ ticket.text }} </li> </ul> <div ui-if="selectedTicket != null"> <form ng-submit="createNotice(selectedTicket)"> <textarea ng-model="noticeText"></textarea> <button type="submit">add notice</button> </form> </div>
JS部分:
$scope.createNotice = function(ticket){ alert($scope.noticeText); }
返回’undefined’。我注意到,这不工作时使用ui-if的angular-ui。任何想法为什么这不工作?如何解决?
你的问题在于ui-if部分。似乎angular-ui为该指令中的任何内容创建了一个新的范围,所以为了访问父范围,你必须这样做:
<textarea ng-model="$parent.noticeText"></textarea>
代替
<textarea ng-model="noticeText"></textarea>