$scope object, as its names says, it's an object on which you should store all other objects you will use on "view" (on your case, html file). As Angular has data binding, it's enough with change dinamicaly any value on $scope and change will be reflexed on your view (html file).
So, here you have a cleaner version of your code use $scope object (and the name of the selected site is displayed):
index.html
<html ng-app="kibana.controllers">
<head>
<meta charset="UTF-8">
<title>Log Stack Manager</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
<script src="app.module.js"></script>
<script src="script.js"></script>
<!-- <script src="app/services/dashboard.js"></script> -->
</head>
<body>
<div class="lateral_panel" ng-controller="selectCtrl">
<h1>MENU LSM</h1>
<h3>Sites: </h3>
<div class="styled-select">
<select name="site" ng-model="selectedRequest" ng-options="site.name for site in option" ng-change="update()">
</select>
</div>
<br/><br/>
<div ng-bind="texte.name"></div>
<!-- <div>{{sel.selectedRequest.site.name}}</div> -->
<br/><br/>
<text1>Chose: </text1>
<h4>{{selectedRequest.name}}</h4>
<div ng-show="selectedRequest && selectedRequest.id != 0 " >
<text2>Contains:</text2>
<br>
<h4 ng-repeat="country in selectedRequest.countries">{{country.name}}</h4>
<br>
<text3>and:</text3>
<h4 ng-repeat="server in selectedRequest.servers">{{server.name}}</h4>
</div>
</div>
<div>
<form action="index.html">
<input type="submit" name="OK" value="OK" id="ok">
</form>
</div>
</body>
</html>
script.js
(function(angular) {
'use strict';
var module = angular.module('kibana.controllers');
module.controller('selectCtrl', function ($scope, $http){
//option will be an array wich stores all available options
$scope.option = [
{id: 0, name: ""},
{id: 1, name: "A",
countries: [{id: 1, name: "FR" }],
servers: [{id: 1, name: "1"},
{id: 2, name: "2"},
{id: 3, name: "3"}]
},
{id: 2, name: "B",
countries: [{id: 1, name: "FR"},{id:2, name: "DE"}],
servers: [{id: 1, name: "4"},
{id: 2, name: "5"},
{id: 3, name: "6"},
{id: 4, name: "7"},
{id: 5, name: "8"},
{id: 6, name: "9"}]
}
];
//just store selected option
$scope.selectedRequest = $scope.option[0];
$scope.showMessage = true;
//we store on texte the selected option
$scope.update = function () {
$scope.texte = $scope.selectedRequest;
}
// vm.selectedRequest = dashboard;
});
})(angular);
ng-bind="sel.texte", whole object ??sel.selectedRequest.site.nameis showing exactly this$scope.sel.selectedRequest.site.namefrom your controller.ng-modelwill work for you :)