2015-06-03 26 views
5

Tôi đang triển khai js góc và đang cố gắng lấy giá trị của hộp nhập liệu và lưu nó vào bộ nhớ cục bộ. Đầu vào được gõ bởi người dùng và nó tham chiếu đến địa chỉ ip.Nhận giá trị đầu vào bằng angularjs

Dưới đây là mã html của tôi:

<div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save()"> 
    </div> 

Dưới đây là mã js của tôi:

.controller('Ctrl', function($scope) { 

    $scope.save= function() { 
     console.log($scope.serverip); 
     localStorage.setItem('serverip', $scope.serverip); 
    }; 
}) 

Tại sao nó bằng cách sử dụng mã hóa ở trên, sau khi tôi chìa khóa trong địa chỉ ip vào hộp nhập , $scope.serverip Tôi nhận được luôn luôn là không xác định?

+1

Làm thế nào để bạn ràng buộc điều khiển của bạn để HTML? –

+0

Tôi đang sử dụng nền tảng ion – Coolguy

+0

bạn có thể cung cấp plunker hoặc jsfiddle với sự cố không? – Grundy

Trả lời

0

Bạn đã đặt đúng ng-appng-controller? Đây là a plunker minh họa hành vi bạn muốn.

HTML:

<body ng-controller="Ctrl"> 
    <div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save()"> 
    </div> 
    <p> 
    Saved IP: {{savedip}} 
    </p> 
</body> 

Bộ điều khiển:

var app = angular.module('plunker', []); 

app.controller('Ctrl', function($scope) { 

    $scope.save = function() { 
     $scope.savedip = $scope.serverip 
    }; 
}) 
+1

Có. Tôi nghĩ rằng ng-app và ng-controller của tôi là chính xác. Chỉ cần tôi luôn luôn nhận được undefined cho $ scope.serverip. Nếu ng-app và ng-controller của tôi sai, tôi nghĩ hàm $ scope.save sẽ không chạy. Bây giờ, nút $ scope.save đã chạy. – Coolguy

+0

Điều này thật tuyệt. Thay vì lưu nó như là một angularjs. có thể lưu giá trị đó như một đối tượng java không? Tôi cần phải chuyển giá trị đó vào các lớp học của tôi – Jesse

0

Đây là ví dụ hoàn hảo làm việc về những gì bạn đang tìm kiếm:

Live: http://jsbin.com/bifiseyese/1/edit?html,console,output

Code:

<div ng-app="app" ng-controller="Ctrl"> 
    <input type="text" ng-model="serverip"/> 
    <button ng-click="save()">Save</button> 
</div> 

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script> 
<script type="text/javascript"> 
angular.module('app',[]).controller('Ctrl', ['$scope', function($scope){ 
    $scope.save = function(){ 
     localStorage.setItem('serverip', $scope.serverip); 
     console.log("localStorage.serverip = " + localStorage.serverip); 
    }; 
}]); 
</script> 

1

tôi kinda tìm ra câu trả lời chính xác. Chúng ta phải vượt qua phía sau serverip trong html:

<div> 
    <input ng-model="serverip"> 
    <input type="button" class="button" value="Apply" ng-click="save(serverip)"> 
    </div> 

Và trong file js:

.controller('Ctrl', function($scope) { 

    $scope.save = function(serverip) { 
     console.log(serverip); 
     localStorage.setItem('serverip', serverip); 
    }; 
}) 
+1

'$ scope.save' đã có quyền truy cập vào' $ scope.serverip'. Việc truyền nó theo cách thủ công là không cần thiết và chỉ tránh được ràng buộc dữ liệu mà Angular được xây dựng để giúp bạn. –

Các vấn đề liên quan