export class ViewModel {
public users: knockout.koObservableArrayBase;
constructor() {
this.users = ko.observableArray([]);
this.removeUser = this.removeUser.bind(this);//<-- Here compiller shows error
}
removeUser(user: User): void {
this.users.remove(user);
}
}
एचटीएमएल:
<table>
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
</tr>
</thead>
<tbody data-bind="foreach: users">
<tr>
<td><a href="#" data-bind="click: $root.removeUser">Remove</a></td>
<td data-bind="text: name"></td>
<td data-bind="text: surname"></td>
</tr>
</tbody>
</table>
समस्या removeUser विधि में है। डिफ़ॉल्ट रूप से, यदि मैं संदर्भ को बाध्य नहीं करता हूं, तो यह == UserToDelete - मॉड्यूल ऑब्जेक्ट नहीं देखता है। यदि मैं कन्स्ट्रक्टर में जोड़ रहा हूं: this.removeUser = this.removeUser.bind(this); (manually enforce context)
, तो संदर्भ इस == व्यूमोडेल की आवश्यकता है, लेकिन फिर टाइपस्क्रिप्ट शिकायत करता है कि "फ़ंक्शन को कन्वर्ट नहीं कर सकता (उपयोगकर्ता: उपयोगकर्ता) => शून्य को कॉल हस्ताक्षर की आवश्यकता है, लेकिन फ़ंक्शन में एक की कमी है।"
यदि आपको गन्दा एचटीएमएल नहीं है तो यह एक विकल्प है: Remove –