存储

时间:2015-12-27 19:10:41

标签: angularjs

我正在尝试使用NgStorage创建动态输入字段并将这些类型值推送到AngularJS中的localstorage。

问题是我不知道如何在范围和存储使用情况下使用ng-repeat,所以我可以创建新的输入字段。

最后它应该创建/显示两个字段,当键入这些字段时,数据被保存到localstorage中,当单击“添加”时,它会添加两个新字段来输入数据,依此类推。 “删除”按钮应删除最后两个添加的字段。

Example here

目前,对于ng-repeat,使用ng-repeat="language in storage.languages",但目前在单击“添加”按钮时不显示字段或功能。

我希望我从我的观点中明确表达了一切。如果有任何问题,请开火!谢谢你的时间和帮助!

2 个答案:

答案 0 :(得分:1)

你应该在ng-model中使用language而不是$ storage.languages作为输入:

<form>
    <div class="language" ng-repeat="language in $storage.languages">
        <fieldset>
            <label for="language">Language</label>
            <input type="text" id="language" ng-model="language.name">
        </fieldset>
        <fieldset>
            <label for="skill">Skill</label>
            <input type="text" id="skill" ng-model="language.skill">
        </fieldset>
    </div>
    <button ng-click="clearAll()">Clear data</button>
    <button ng-click="removeLanguage($index)">Delete</button>
    <button ng-click="addLanguage()">Add</button>
</form>

另外,languages字段最初应设置为空数组[],以使push({})正常工作。

请参阅http://plnkr.co/edit/pHPZhgJMbEqX0mfWFnMQ?p=preview

答案 1 :(得分:0)

删除功能已损坏。这应该解决它:

$scope.removeLanguage = function () {
    $scope.$storage.languages.splice(this.index, 1);
}